Changeset 2416

Show
Ignore:
Timestamp:
11/22/09 15:07:31
Author:
bleibson
Message:

Made the public client's cleanXml the default.
Added a little logic to widget-json-{cats,groups}.xml so that when setappvar=objName(varName) will stuff the generated json into an object called varName.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/deployment/feeder/webapp/resources/demoskins/MainCampus/default/default/default.xsl

    r2409 r2416  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <xsl:stylesheet 
    3   version="1.0" 
    4   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    5   xmlns="http://www.w3.org/1999/xhtml"> 
    6  
     2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    73<xsl:output 
    84  method="xml" 
    9   indent="no" 
    10   media-type="text/html" 
    11   doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
    12   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
     5  indent="yes" 
     6  omit-xml-declaration="no" 
     7  media-type="text/xml" 
    138  standalone="yes" 
    14   omit-xml-declaration="yes"/> 
     9/> 
    1510 
    1611<!-- ========================================================= 
     
    1813              DEMONSTRATION CALENDAR STYLESHEET 
    1914 
    20                   MainCampus Calendar Suite 
    21  
    22      This stylesheet is devoid of school branding.  It is a good 
    23      starting point for development of a customized calendar. 
    24  
    25      For detailed instructions on how to work with the XSLT 
    26      stylesheets included with this distribution, please see the 
    27      Bedework Design Guide at 
    28      http://www.bedework.org/bedework/update.do?artcenterkey=24 
     15     a simple stylesheet to provide a proper xml declaration 
     16     and clean xml for use on other systems.  This is slightly 
     17     more expensive than simply turning off the transform with 
     18     noxslt=yes, but it may play better with some systems. 
    2919 
    3020===============================================================  --> 
    31 <!-- ********************************************************************** 
    32     Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved. 
    3321 
    34     Redistribution and use of this distribution in source and binary forms, 
    35     with or without modification, are permitted provided that: 
    36        The above copyright notice and this permission notice appear in all 
    37         copies and supporting documentation; 
    38  
    39         The name, identifiers, and trademarks of Rensselaer Polytechnic 
    40         Institute are not used in advertising or publicity without the 
    41         express prior written permission of Rensselaer Polytechnic Institute; 
    42  
    43     DISCLAIMER: The software is distributed" AS IS" without any express or 
    44     implied warranty, including but not limited to, any implied warranties 
    45     of merchantability or fitness for a particular purpose or any warrant)' 
    46     of non-infringement of any current or pending patent rights. The authors 
    47     of the software make no representations about the suitability of this 
    48     software for any particular purpose. The entire risk as to the quality 
    49     and performance of the software is with the user. Should the software 
    50     prove defective, the user assumes the cost of all necessary servicing, 
    51     repair or correction. In particular, neither Rensselaer Polytechnic 
    52     Institute, nor the authors of the software are liable for any indirect, 
    53     special, consequential, or incidental damages related to the software, 
    54     to the maximum extent the law permits. --> 
    55  
    56   <!-- ================================= --> 
    57   <!--  DEMO PUBLIC CALENDAR STYLESHEET  --> 
    58   <!-- ================================= --> 
    59  
    60   <!-- URL of resources common to all bedework apps (javascript, images) --> 
    61   <xsl:variable name="resourceCommons">../../../bedework-common</xsl:variable> 
    62  
    63   <!-- DEFINE INCLUDES --> 
    64   <!-- cannot use the resourceCommons variable in xsl:include paths --> 
    65   <xsl:include href="../../../bedework-common/default/default/errors.xsl"/> 
    66   <xsl:include href="../../../bedework-common/default/default/messages.xsl"/> 
    67   <xsl:include href="../../../bedework-common/default/default/util.xsl"/> 
    68   <xsl:include href="./strings.xsl"/> 
    69  
    70   <!-- DEFINE GLOBAL CONSTANTS --> 
    71  
    72   <!-- URL of html resources (images, css, other html); by default this is 
    73        set to the application root --> 
    74   <xsl:variable name="resourcesRoot" select="/bedework/approot"/> 
    75  
    76   <!-- URL of the XSL template directory --> 
    77   <!-- The approot is an appropriate place to put 
    78        included stylesheets and xml fragments. These are generally 
    79        referenced relatively (like errors.xsl and messages.xsl above); 
    80        this variable is here for your convenience if you choose to 
    81        reference it explicitly.  It is not used in this stylesheet, however, 
    82        and can be safely removed if you so choose. --> 
    83   <xsl:variable name="appRoot" select="/bedework/approot"/> 
    84  
    85   <!-- Properly encoded prefixes to the application actions; use these to build 
    86        urls; allows the application to be used without cookies or within a portal. 
    87        These urls are rewritten in header.jsp and simply passed through for use 
    88        here. Every url includes a query string (either ?b=de or a real query 
    89        string) so that all links constructed in this stylesheet may begin the 
    90        query string with an ampersand. --> 
    91   <xsl:variable name="setup" select="/bedework/urlPrefixes/setup"/> 
    92   <xsl:variable name="setSelection" select="/bedework/urlPrefixes/main/setSelection"/> 
    93   <xsl:variable name="fetchPublicCalendars" select="/bedework/urlPrefixes/calendar/fetchPublicCalendars"/> 
    94   <xsl:variable name="setViewPeriod" select="/bedework/urlPrefixes/main/setViewPeriod"/> 
    95   <xsl:variable name="listEvents" select="/bedework/urlPrefixes/main/listEvents"/> 
    96   <xsl:variable name="eventView" select="/bedework/urlPrefixes/event/eventView"/> 
    97   <xsl:variable name="addEventRef" select="/bedework/urlPrefixes/event/addEventRef"/> 
    98   <xsl:variable name="export" select="/bedework/urlPrefixes/misc/export"/> 
    99   <xsl:variable name="search" select="/bedework/urlPrefixes/search/search"/> 
    100   <xsl:variable name="search-next" select="/bedework/urlPrefixes/search/next"/> 
    101   <xsl:variable name="calendar-fetchForExport" select="/bedework/urlPrefixes/calendar/fetchForExport"/> 
    102   <xsl:variable name="mailEvent" select="/bedework/urlPrefixes/mail/mailEvent"/> 
    103   <!-- Unused 
    104   <xsl:variable name="showPage" select="/bedework/urlPrefixes/main/showPage"/> 
    105    --> 
    106  <xsl:variable name="stats" select="/bedework/urlPrefixes/stats/stats"/> 
    107  
    108   <!-- URL of the web application - includes web context --> 
    109   <xsl:variable name="urlPrefix" select="/bedework/urlprefix"/> 
    110  
    111   <!-- Other generally useful global variables --> 
    112   <xsl:variable name="privateCal">/ucal</xsl:variable> 
    113   <xsl:variable name="prevdate" select="/bedework/previousdate"/> 
    114   <xsl:variable name="nextdate" select="/bedework/nextdate"/> 
    115   <xsl:variable name="curdate" select="/bedework/currentdate/date"/> 
    116  
    117  
    118   <!-- MAIN TEMPLATE --> 
    11922  <xsl:template match="/"> 
    120     <html lang="en"> 
    121       <head> 
    122         <title><xsl:copy-of select="$bwStr-Root-PageTitle"/></title>  
    123         <meta content="text/html;charset=utf-8" http-equiv="Content-Type" /> 
    124         <!-- load css --> 
    125         <xsl:choose> 
    126           <xsl:when test="/bedework/appvar[key='style']/value='red'"> 
    127             <link rel="stylesheet" href="{$resourcesRoot}/default/default/red.css"/> 
    128           </xsl:when> 
    129           <xsl:when test="/bedework/appvar[key='style']/value='green'"> 
    130             <link rel="stylesheet" href="{$resourcesRoot}/default/default/green.css"/> 
    131           </xsl:when> 
    132           <xsl:otherwise> 
    133             <link rel="stylesheet" href="{$resourcesRoot}/default/default/blue.css"/> 
    134           </xsl:otherwise> 
    135         </xsl:choose> 
    136         <link rel="stylesheet" href="../../../bedework-common/default/default/subColors.css"/> 
    137         <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/default/default/print.css" /> 
    138         <!-- load javascript --> 
    139         <xsl:if test="/bedework/page='event' or /bedework/page='displayCalendarForExport'"> 
    140           <script type="text/javascript" src="/bedework-common/javascript/jquery/jquery-1.3.2.min.js">&#160;</script> 
    141           <script type="text/javascript" src="/bedework-common/javascript/jquery/jquery-ui-1.7.1.custom.min.js">&#160;</script> 
    142           <link rel="stylesheet" href="/bedework-common/javascript/jquery/css/custom-theme/jquery-ui-1.7.1.custom.css"/> 
    143           <link rel="stylesheet" href="/bedework-common/javascript/jquery/css/custom-theme/bedeworkJquery.css"/> 
    144           <script type="text/javascript" src="{$resourcesRoot}/resources/javascript/bedework.js">&#160;</script> 
    145           <xsl:if test="/bedework/page='displayCalendarForExport'"> 
    146             <script type="text/javascript"> 
    147               <xsl:comment> 
    148               $.datepicker.setDefaults({ 
    149                 constrainInput: true, 
    150                 dateFormat: "yy-mm-dd", 
    151                 showOn: "both", 
    152                 buttonImage: "<xsl:value-of select='$resourcesRoot'/>/images/calIcon.gif", 
    153                 buttonImageOnly: true, 
    154                 gotoCurrent: true, 
    155                 duration: "" 
    156               }); 
    157               $(document).ready(function() { 
    158                 $("#bwExportCalendarWidgetStartDate").datepicker({ 
    159                 }).attr("readonly", "readonly"); 
    160                 $("#bwExportCalendarWidgetEndDate").datepicker({ 
    161                 }).attr("readonly", "readonly"); 
    162               }); 
    163               </xsl:comment> 
    164             </script> 
    165           </xsl:if> 
    166         </xsl:if> 
    167         <!-- address bar icon --> 
    168         <link rel="icon" type="image/ico" href="{$resourcesRoot}/images/bedework.ico" /> 
    169       </head> 
    170       <body> 
    171         <xsl:call-template name="headBar"/> 
    172         <xsl:if test="/bedework/error"> 
    173           <div id="errors"> 
    174             <xsl:apply-templates select="/bedework/error"/> 
    175           </div> 
    176         </xsl:if> 
    177         <xsl:call-template name="tabs"/> 
    178         <xsl:call-template name="navigation"/> 
    179         <xsl:call-template name="searchBar"/> 
    180         <xsl:choose> 
    181           <xsl:when test="/bedework/page='event'"> 
    182             <!-- show an event --> 
    183             <xsl:apply-templates select="/bedework/event"/> 
    184           </xsl:when> 
    185           <xsl:when test="/bedework/page='eventList'"> 
    186             <!-- show a list of discrete events in a time period --> 
    187             <xsl:apply-templates select="/bedework/events" mode="eventList"/> 
    188           </xsl:when> 
    189           <xsl:when test="/bedework/page='showSysStats'"> 
    190             <!-- show system stats --> 
    191             <xsl:call-template name="stats"/> 
    192           </xsl:when> 
    193           <xsl:when test="/bedework/page='calendarList'"> 
    194             <!-- show a list of all calendars --> 
    195             <xsl:apply-templates select="/bedework/calendars"/> 
    196           </xsl:when> 
    197           <xsl:when test="/bedework/page='displayCalendarForExport'"> 
    198             <!-- page for calendar export (can optionally be replaced by 
    199                  a pop-up widget; see the calendars template) --> 
    200             <xsl:apply-templates select="/bedework/currentCalendar" mode="export"/> 
    201           </xsl:when> 
    202           <xsl:when test="/bedework/page='searchResult'"> 
    203             <!-- display search results --> 
    204             <xsl:call-template name="searchResult"/> 
    205           </xsl:when> 
    206           <xsl:otherwise> 
    207             <!-- otherwise, show the eventsCalendar --> 
    208             <!-- main eventCalendar content --> 
    209             <xsl:choose> 
    210               <xsl:when test="/bedework/periodname='Day'"> 
    211                 <xsl:call-template name="listView"/> 
    212               </xsl:when> 
    213               <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''"> 
    214                 <xsl:choose> 
    215                   <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'"> 
    216                     <xsl:call-template name="listView"/> 
    217                   </xsl:when> 
    218                   <xsl:otherwise> 
    219                     <xsl:call-template name="weekView"/> 
    220                   </xsl:otherwise> 
    221                 </xsl:choose> 
    222               </xsl:when> 
    223               <xsl:when test="/bedework/periodname='Month'"> 
    224                 <xsl:choose> 
    225                   <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'"> 
    226                     <xsl:call-template name="listView"/> 
    227                   </xsl:when> 
    228                   <xsl:otherwise> 
    229                     <xsl:call-template name="monthView"/> 
    230                   </xsl:otherwise> 
    231                 </xsl:choose> 
    232               </xsl:when> 
    233               <xsl:otherwise> 
    234                 <xsl:call-template name="yearView"/> 
    235               </xsl:otherwise> 
    236             </xsl:choose> 
    237           </xsl:otherwise> 
    238         </xsl:choose> 
    239         <!-- footer --> 
    240         <xsl:call-template name="footer"/> 
    241       </body> 
    242     </html> 
    243   </xsl:template> 
    244  
    245   <!--==== HEADER TEMPLATES and NAVIGATION  ====--> 
    246   <!-- these templates are separated out for convenience and to simplify the default template --> 
    247  
    248   <xsl:template name="headBar"> 
    249     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="logoTable"> 
    250       <tr> 
    251         <td colspan="3" id="logoCell"><a href="/bedework/"><img src="{$resourcesRoot}/images/bedeworkLogo.gif" width="292" height="75" border="0" alt="Bedework"/></a></td> 
    252         <td colspan="2" id="schoolLinksCell"> 
    253           <h2><xsl:copy-of select="$bwStr-HdBr-PublicCalendar"/></h2> 
    254           <a href="{$privateCal}"><xsl:copy-of select="$bwStr-HdBr-PersonalCalendar"/></a> | 
    255           <a href="http://www.youruniversityhere.edu"><xsl:copy-of select="$bwStr-HdBr-UniversityHome"/></a> | 
    256           <a href="http://www.bedework.org/"><xsl:copy-of select="$bwStr-HdBr-OtherLink"/></a> 
    257         </td> 
    258       </tr> 
    259     </table> 
    260     <table id="curDateRangeTable"  cellspacing="0"> 
    261       <tr> 
    262         <td class="sideBarOpenCloseIcon"> 
    263           &#160; 
    264           <!-- 
    265           we may choose to implement calendar selection in the public calendar 
    266           using a sidebar; leave this comment here for now. 
    267           <xsl:choose> 
    268             <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'"> 
    269               <a href="?setappvar=sidebar(opened)"> 
    270                 <img alt="open sidebar" src="{$resourcesRoot}/resources/sideBarArrowOpen.gif" width="21" height="16" border="0" align="left"/> 
    271               </a> 
    272             </xsl:when> 
    273             <xsl:otherwise> 
    274               <a href="?setappvar=sidebar(closed)"> 
    275                 <img alt="close sidebar" src="{$resourcesRoot}/resources/sideBarArrowClose.gif" width="21" height="16" border="0" align="left"/> 
    276               </a> 
    277             </xsl:otherwise> 
    278           </xsl:choose>--> 
    279         </td> 
    280         <td class="date"> 
    281           <xsl:choose> 
    282             <xsl:when test="/bedework/page='event'"> 
    283               <xsl:copy-of select="$bwStr-HdBr-EventInformation"/> 
    284             </xsl:when> 
    285             <xsl:when test="/bedework/page='showSysStats' or 
    286                             /bedework/page='calendars'"> 
    287               &#160; 
    288             </xsl:when> 
    289             <xsl:otherwise> 
    290               <xsl:value-of select="/bedework/firstday/longdate"/> 
    291               <xsl:if test="/bedework/periodname!='Day'"> 
    292                 - 
    293                 <xsl:value-of select="/bedework/lastday/longdate"/> 
    294               </xsl:if> 
    295             </xsl:otherwise> 
    296           </xsl:choose> 
    297         </td> 
    298         <td class="rssPrint"> 
    299           <a href="javascript:window.print()" title="{$bwStr-HdBr-PrintThisView}"> 
    300             <img alt="print this view" src="{$resourcesRoot}/images/std-print-icon.gif" width="20" height="14" border="0"/><xsl:text> </xsl:text><xsl:copy-of select="$bwStr-HdBr-Print"/> 
    301           </a> 
    302           <a class="rss" href="{$listEvents}&amp;setappvar=summaryMode(details)&amp;skinName=rss-list&amp;days=3" title="{$bwStr-HdBr-RSSFeed}"><xsl:copy-of select="$bwStr-HdBr-RSS"/></a> 
    303         </td> 
    304       </tr> 
    305     </table> 
    306   </xsl:template> 
    307  
    308   <xsl:template name="tabs"> 
    309     <div id="bwTabs"> 
    310       <ul> 
    311         <li> 
    312           <xsl:if test="/bedework/page='eventscalendar' and /bedework/periodname='Day'"> 
    313             <xsl:attribute name="class">selected</xsl:attribute> 
    314           </xsl:if> 
    315           <a href="{$setViewPeriod}&amp;viewType=dayView&amp;date={$curdate}"><xsl:copy-of select="$bwStr-Tabs-Day"/></a> 
    316         </li> 
    317         <li> 
    318           <xsl:if test="/bedework/page='eventscalendar' and /bedework/periodname='Week' or /bedework/periodname=''"> 
    319             <xsl:attribute name="class">selected</xsl:attribute> 
    320           </xsl:if> 
    321           <a href="{$setViewPeriod}&amp;viewType=weekView&amp;date={$curdate}"><xsl:copy-of select="$bwStr-Tabs-Week"/></a> 
    322         </li> 
    323         <li> 
    324           <xsl:if test="/bedework/page='eventscalendar' and /bedework/periodname='Month'"> 
    325             <xsl:attribute name="class">selected</xsl:attribute> 
    326           </xsl:if><a href="{$setViewPeriod}&amp;viewType=monthView&amp;date={$curdate}"><xsl:copy-of select="$bwStr-Tabs-Month"/></a> 
    327         </li> 
    328         <li> 
    329           <xsl:if test="/bedework/page='eventscalendar' and /bedework/periodname='Year'"> 
    330             <xsl:attribute name="class">selected</xsl:attribute> 
    331           </xsl:if><a href="{$setViewPeriod}&amp;viewType=yearView&amp;date={$curdate}"><xsl:copy-of select="$bwStr-Tabs-Year"/></a> 
    332         </li> 
    333         <li> 
    334           <xsl:if test="/bedework/page='eventList'"> 
    335             <xsl:attribute name="class">selected</xsl:attribute> 
    336           </xsl:if><a href="{$listEvents}"><xsl:copy-of select="$bwStr-Tabs-List"/></a> 
    337         </li> 
    338       </ul> 
    339     </div> 
    340   </xsl:template> 
    341  
    342   <xsl:template name="navigation"> 
    343     <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable"> 
    344       <tr> 
    345         <td class="leftCell"> 
    346           <a id="prevViewPeriod" href="{$setViewPeriod}&amp;date={$prevdate}"><img src="{$resourcesRoot}/images/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a> 
    347           <a id="nextViewPeriod" href="{$setViewPeriod}&amp;date={$nextdate}"><img src="{$resourcesRoot}/images/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a> 
    348           <xsl:choose> 
    349             <xsl:when test="/bedework/periodname='Year'"> 
    350               <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/> 
    351             </xsl:when> 
    352             <xsl:when test="/bedework/periodname='Month'"> 
    353               <xsl:value-of select="/bedework/firstday/monthname"/>, <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/> 
    354             </xsl:when> 
    355             <xsl:when test="/bedework/periodname='Week'"> 
    356               <xsl:copy-of select="$bwStr-Navi-WeekOf"/><xsl:text> </xsl:text><xsl:value-of select="substring-after(/bedework/firstday/longdate,', ')"/> 
    357             </xsl:when> 
    358             <xsl:otherwise> 
    359               <xsl:value-of select="/bedework/firstday/longdate"/> 
    360             </xsl:otherwise> 
    361           </xsl:choose> 
    362         </td> 
    363         <td class="todayButton"> 
    364           <a href="{$setViewPeriod}&amp;viewType=todayView&amp;date={$curdate}"> 
    365             <img src="{$resourcesRoot}/images/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/> 
    366           </a> 
    367         </td> 
    368         <td align="right" class="gotoForm"> 
    369           <form name="calForm" method="post" action="{$setViewPeriod}"> 
    370              <table border="0" cellpadding="0" cellspacing="0"> 
    371               <tr> 
    372                 <xsl:if test="/bedework/periodname!='Year'"> 
    373                   <td> 
    374                     <select name="viewStartDate.month"> 
    375                       <xsl:for-each select="/bedework/monthvalues/val"> 
    376                         <xsl:variable name="temp" select="."/> 
    377                         <xsl:variable name="pos" select="position()"/> 
    378                         <xsl:choose> 
    379                           <xsl:when test="/bedework/monthvalues[start=$temp]"> 
    380                             <option value="{$temp}" selected="selected"> 
    381                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/> 
    382                             </option> 
    383                           </xsl:when> 
    384                           <xsl:otherwise> 
    385                             <option value="{$temp}"> 
    386                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/> 
    387                             </option> 
    388                           </xsl:otherwise> 
    389                         </xsl:choose> 
    390                       </xsl:for-each> 
    391                     </select> 
    392                   </td> 
    393                   <xsl:if test="/bedework/periodname!='Month'"> 
    394                     <td> 
    395                       <select name="viewStartDate.day"> 
    396                         <xsl:for-each select="/bedework/dayvalues/val"> 
    397                           <xsl:variable name="temp" select="."/> 
    398                           <xsl:variable name="pos" select="position()"/> 
    399                           <xsl:choose> 
    400                             <xsl:when test="/bedework/dayvalues[start=$temp]"> 
    401                               <option value="{$temp}" selected="selected"> 
    402                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/> 
    403                               </option> 
    404                             </xsl:when> 
    405                             <xsl:otherwise> 
    406                               <option value="{$temp}"> 
    407                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/> 
    408                               </option> 
    409                             </xsl:otherwise> 
    410                           </xsl:choose> 
    411                         </xsl:for-each> 
    412                       </select> 
    413                     </td> 
    414                   </xsl:if> 
    415                 </xsl:if> 
    416                 <td> 
    417                   <xsl:variable name="temp" select="/bedework/yearvalues/start"/> 
    418                   <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/> 
    419                 </td> 
    420                 <td> 
    421                   <input name="submit" type="submit" value="{$bwStr-Navi-Go}"/> 
    422                 </td> 
    423               </tr> 
    424             </table> 
    425           </form> 
    426         </td> 
    427         <td class="rightCell"> 
    428         </td> 
    429       </tr> 
    430     </table> 
    431   </xsl:template> 
    432  
    433   <xsl:template name="searchBar"> 
    434     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="searchBarTable"> 
    435        <tr> 
    436          <td class="leftCell"> 
    437            <xsl:choose> 
    438              <xsl:when test="/bedework/selectionState/selectionType = 'collections'"> 
    439                <xsl:copy-of select="$bwStr-SrcB-TopicalArea"/> 
    440                <strong> 
    441                  <xsl:call-template name="substring-afterLastInstanceOf"> 
    442                    <xsl:with-param name="string" select="/bedework/appvar[key='curCollection']/value"/> 
    443                    <xsl:with-param name="char">/</xsl:with-param> 
    444                  </xsl:call-template> 
    445                </strong> 
    446              </xsl:when> 
    447              <xsl:when test="/bedework/selectionState/selectionType = 'search'"> 
    448                <xsl:copy-of select="$bwStr-SrcB-CurrentSearch"/><xsl:text> </xsl:text><xsl:value-of select="/bedework/search"/> 
    449              </xsl:when> 
    450              <xsl:otherwise><!-- view --> 
    451                <xsl:copy-of select="$bwStr-SrcB-View"/> 
    452                <form name="selectViewForm" method="post" action="{$setSelection}"> 
    453                 <select name="viewName" onchange="submit()" > 
    454                   <xsl:if test="/bedework/page = 'eventList'"><xsl:attribute name="disabled">disabled</xsl:attribute></xsl:if> 
    455                   <xsl:for-each select="/bedework/views/view"> 
    456                     <xsl:variable name="name" select="name"/> 
    457                     <xsl:choose> 
    458                       <xsl:when test="name=/bedework/selectionState/view/name"> 
    459                         <option value="{$name}" selected="selected"><xsl:value-of select="name"/></option> 
    460                       </xsl:when> 
    461                       <xsl:otherwise> 
    462                         <option value="{$name}"><xsl:value-of select="name"/></option> 
    463                       </xsl:otherwise> 
    464                     </xsl:choose> 
    465                   </xsl:for-each> 
    466                 </select> 
    467               </form> 
    468              </xsl:otherwise> 
    469            </xsl:choose> 
    470            <span class="link"><a href="{$setSelection}"><xsl:copy-of select="$bwStr-SrcB-DefaultView"/></a> | <a href="{$fetchPublicCalendars}"><xsl:copy-of select="$bwStr-SrcB-AllTopicalAreas"/></a></span> 
    471          </td> 
    472          <td class="rightCell"> 
    473             <xsl:if test="/bedework/page!='searchResult'"> 
    474               <form name="searchForm" id="searchForm" method="post" action="{$search}"> 
    475                 <xsl:copy-of select="$bwStr-SrcB-Search"/> 
    476                 <input type="text" name="query" size="15"> 
    477                   <xsl:attribute name="value"><xsl:value-of select="/bedework/searchResults/query"/></xsl:attribute> 
    478                 </input> 
    479                 <input type="submit" name="submit" value="{$bwStr-SrcB-Go}"/> 
    480               </form> 
    481               <xsl:text> </xsl:text> 
    482             </xsl:if> 
    483             <xsl:choose> 
    484               <xsl:when test="/bedework/periodname='Day' or /bedework/page='eventList'"> 
    485                 <img src="{$resourcesRoot}/images/std-button-listview-off.gif" width="46" height="21" border="0" alt="{$bwStr-SrcB-ToggleListCalView}"/> 
    486               </xsl:when> 
    487               <xsl:when test="/bedework/periodname='Year'"> 
    488                 <img src="{$resourcesRoot}/images/std-button-calview-off.gif" width="46" height="21" border="0" alt="{$bwStr-SrcB-ToggleListCalView}"/> 
    489               </xsl:when> 
    490               <xsl:when test="/bedework/periodname='Month'"> 
    491                 <xsl:choose> 
    492                   <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'"> 
    493                     <a href="{$setup}&amp;setappvar=monthViewMode(cal)" title="{$bwStr-SrcB-ToggleListCalView}"> 
    494                       <img src="{$resourcesRoot}/images/std-button-calview.gif" width="46" height="21" border="0" alt="{$bwStr-SrcB-ToggleListCalView}"/> 
    495                     </a> 
    496                   </xsl:when> 
    497                   <xsl:otherwise> 
    498                     <a href="{$setup}&amp;setappvar=monthViewMode(list)" title="{$bwStr-SrcB-ToggleListCalView}"> 
    499                       <img src="{$resourcesRoot}/images/std-button-listview.gif" width="46" height="21" border="0" alt="{$bwStr-SrcB-ToggleListCalView}"/> 
    500                     </a> 
    501                   </xsl:otherwise> 
    502                 </xsl:choose> 
    503               </xsl:when> 
    504               <xsl:otherwise> 
    505                 <xsl:choose> 
    506                   <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'"> 
    507                     <a href="{$setup}&amp;setappvar=weekViewMode(cal)" title="{$bwStr-SrcB-ToggleListCalView}"> 
    508                       <img src="{$resourcesRoot}/images/std-button-calview.gif" width="46" height="21" border="0"  alt="{$bwStr-SrcB-ToggleListCalView}"/> 
    509                     </a> 
    510                   </xsl:when> 
    511                   <xsl:otherwise> 
    512                     <a href="{$setup}&amp;setappvar=weekViewMode(list)" title="{$bwStr-SrcB-ToggleListCalView}"> 
    513                       <img src="{$resourcesRoot}/images/std-button-listview.gif" width="46" height="21" border="0"  alt="{$bwStr-SrcB-ToggleListCalView}"/> 
    514                     </a> 
    515                   </xsl:otherwise> 
    516                 </xsl:choose> 
    517               </xsl:otherwise> 
    518             </xsl:choose> 
    519             <xsl:choose> 
    520               <xsl:when test="/bedework/page = 'eventList'"> 
    521                 <xsl:choose> 
    522                   <xsl:when test="/bedework/appvar[key='listEventsSummaryMode']/value='details'"> 
    523                     <a href="{$listEvents}&amp;setappvar=listEventsSummaryMode(summary)" title="{$bwStr-SrcB-ToggleSummDetView}"> 
    524                       <img src="{$resourcesRoot}/images/std-button-summary.gif" width="62" height="21" border="0" alt="{$bwStr-SrcB-ToggleSummDetView}"/> 
    525                     </a> 
    526                   </xsl:when> 
    527                   <xsl:otherwise> 
    528                     <a href="{$listEvents}&amp;setappvar=listEventsSummaryMode(details)" title="{$bwStr-SrcB-ToggleSummDetView}"> 
    529                       <img src="{$resourcesRoot}/images/std-button-details.gif" width="62" height="21" border="0" alt="{$bwStr-SrcB-ToggleSummDetView}"/> 
    530                     </a> 
    531                   </xsl:otherwise> 
    532                 </xsl:choose> 
    533               </xsl:when> 
    534               <xsl:when test="/bedework/periodname='Year' or 
    535                               (/bedework/periodname='Month' and 
    536                               (/bedework/appvar[key='monthViewMode']/value='cal' or 
    537                                not(/bedework/appvar[key='monthViewMode']))) or 
    538                               (/bedework/periodname='Week' and 
    539                               (/bedework/appvar[key='weekViewMode']/value='cal' or 
    540                                not(/bedework/appvar[key='weekViewMode'])))"> 
    541                 <xsl:choose> 
    542                   <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
    543                     <img src="{$resourcesRoot}/images/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/> 
    544                   </xsl:when> 
    545                   <xsl:otherwise> 
    546                     <img src="{$resourcesRoot}/images/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/> 
    547                   </xsl:otherwise> 
    548                 </xsl:choose> 
    549               </xsl:when> 
    550               <xsl:otherwise> 
    551                 <xsl:choose> 
    552                   <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
    553                     <a href="{$setup}&amp;setappvar=summaryMode(summary)" title="{$bwStr-SrcB-ToggleSummDetView}"> 
    554                       <img src="{$resourcesRoot}/images/std-button-summary.gif" width="62" height="21" border="0" alt="{$bwStr-SrcB-ToggleSummDetView}"/> 
    555                     </a> 
    556                   </xsl:when> 
    557                   <xsl:otherwise> 
    558                     <a href="{$setup}&amp;setappvar=summaryMode(details)" title="{$bwStr-SrcB-ToggleSummDetView}"> 
    559                       <img src="{$resourcesRoot}/images/std-button-details.gif" width="62" height="21" border="0" alt="{$bwStr-SrcB-ToggleSummDetView}"/> 
    560                     </a> 
    561                   </xsl:otherwise> 
    562                 </xsl:choose> 
    563               </xsl:otherwise> 
    564             </xsl:choose> 
    565             <a href="{$setup}"> 
    566               <xsl:if test="/bedework/page='eventList'"> 
    567                 <xsl:attribute name="href"><xsl:value-of select="$listEvents"/></xsl:attribute> 
    568               </xsl:if> 
    569               <img src="{$resourcesRoot}/images/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/> 
    570             </a> 
    571           </td> 
    572        </tr> 
    573     </table> 
    574   </xsl:template> 
    575  
    576   <!--==== SINGLE EVENT ====--> 
    577   <xsl:template match="event"> 
    578     <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    579     <xsl:variable name="guid" select="guid"/> 
    580     <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    581     <xsl:variable name="statusClass"> 
    582       <xsl:choose> 
    583         <xsl:when test="status='CANCELLED'">bwStatusCancelled</xsl:when> 
    584         <xsl:when test="status='TENTATIVE'">bwStatusTentative</xsl:when> 
    585         <xsl:otherwise>bwStatusConfirmed</xsl:otherwise> 
    586       </xsl:choose> 
    587     </xsl:variable> 
    588     <h2 class="{$statusClass}"> 
    589       <a id="linkToEvent" href="javascript:showLink('{$urlPrefix}/event/eventView.do?calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}')" title="{$bwStr-SgEv-GenerateLinkToThisEvent}"> 
    590        <xsl:copy-of select="$bwStr-SgEv-LinkToThisEvent"/> 
    591      </a> 
    592       <xsl:if test="status='CANCELLED'"><xsl:copy-of select="$bwStr-SgEv-Canceled"/><xsl:text> </xsl:text></xsl:if> 
    593       <xsl:choose> 
    594         <xsl:when test="link != ''"> 
    595           <xsl:variable name="link" select="link"/> 
    596           <a href="{$link}"> 
    597             <xsl:value-of select="summary"/> 
    598           </a> 
    599         </xsl:when> 
    600         <xsl:otherwise> 
    601           <xsl:value-of select="summary"/> 
    602         </xsl:otherwise> 
    603       </xsl:choose> 
    604     </h2> 
    605     <table id="eventTable" cellpadding="0" cellspacing="0"> 
    606       <tr> 
    607         <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-When"/></td> 
    608         <td class="fieldval"> 
    609           <!-- always display local time --> 
    610           <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text> 
    611           <xsl:if test="start/allday = 'false'"> 
    612             <span class="time"><xsl:value-of select="start/time"/></span> 
    613           </xsl:if> 
    614           <xsl:if test="(end/longdate != start/longdate) or 
    615                         ((end/longdate = start/longdate) and (end/time != start/time))"> - </xsl:if> 
    616           <xsl:if test="end/longdate != start/longdate"> 
    617             <xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text> 
    618           </xsl:if> 
    619           <xsl:choose> 
    620             <xsl:when test="start/allday = 'true'"> 
    621               <span class="time"><em><xsl:copy-of select="$bwStr-SgEv-AllDay"/></em></span> 
    622             </xsl:when> 
    623             <xsl:when test="end/longdate != start/longdate"> 
    624               <span class="time"><xsl:value-of select="end/time"/></span> 
    625             </xsl:when> 
    626             <xsl:when test="end/time != start/time"> 
    627               <span class="time"><xsl:value-of select="end/time"/></span> 
    628             </xsl:when> 
    629           </xsl:choose> 
    630           <!-- if timezones are not local, or if floating add labels: --> 
    631           <xsl:if test="start/timezone/islocal = 'false' or end/timezone/islocal = 'false'"> 
    632             <xsl:text> </xsl:text> 
    633             -- 
    634             <strong> 
    635               <xsl:choose> 
    636                 <xsl:when test="start/floating = 'true'"> 
    637                   <xsl:copy-of select="$bwStr-SgEv-FloatingTime"/> 
    638                 </xsl:when> 
    639                 <xsl:otherwise> 
    640                   <xsl:copy-of select="$bwStr-SgEv-LocalTime"/> 
    641                 </xsl:otherwise> 
    642               </xsl:choose> 
    643             </strong> 
    644             <br/> 
    645           </xsl:if> 
    646           <!-- display in timezone if not local or floating time) --> 
    647           <xsl:if test="(start/timezone/islocal = 'false' or end/timezone/islocal = 'false') and start/floating = 'false'"> 
    648             <xsl:choose> 
    649               <xsl:when test="start/timezone/id != end/timezone/id"> 
    650                 <!-- need to display both timezones if they differ from start to end --> 
    651                 <table border="0" cellspacing="0" id="tztable"> 
    652                   <tr> 
    653                     <td> 
    654                       <strong><xsl:copy-of select="$bwStr-SgEv-Start"/></strong> 
    655                     </td> 
    656                     <td> 
    657                       <xsl:choose> 
    658                         <xsl:when test="start/timezone/islocal='true'"> 
    659                           <xsl:value-of select="start/dayname"/>, 
    660                           <xsl:value-of select="start/longdate"/> 
    661                           <xsl:text> </xsl:text> 
    662                           <span class="time"><xsl:value-of select="start/time"/></span> 
    663                         </xsl:when> 
    664                         <xsl:otherwise> 
    665                           <xsl:value-of select="start/timezone/dayname"/>, 
    666                           <xsl:value-of select="start/timezone/longdate"/> 
    667                           <xsl:text> </xsl:text> 
    668                           <span class="time"><xsl:value-of select="start/timezone/time"/></span> 
    669                         </xsl:otherwise> 
    670                       </xsl:choose> 
    671                     </td> 
    672                     <td> 
    673                       -- 
    674                       <strong><xsl:value-of select="start/timezone/id"/></strong> 
    675                     </td> 
    676                   </tr> 
    677                   <tr> 
    678                     <td> 
    679                       <strong><xsl:copy-of select="$bwStr-SgEv-End"/></strong> 
    680                     </td> 
    681                     <td> 
    682                       <xsl:choose> 
    683                         <xsl:when test="end/timezone/islocal='true'"> 
    684                           <xsl:value-of select="end/dayname"/>, 
    685                           <xsl:value-of select="end/longdate"/> 
    686                           <xsl:text> </xsl:text> 
    687                           <span class="time"><xsl:value-of select="end/time"/></span> 
    688                         </xsl:when> 
    689                         <xsl:otherwise> 
    690                           <xsl:value-of select="end/timezone/dayname"/>, 
    691                           <xsl:value-of select="end/timezone/longdate"/> 
    692                           <xsl:text> </xsl:text> 
    693                           <span class="time"><xsl:value-of select="end/timezone/time"/></span> 
    694                         </xsl:otherwise> 
    695                       </xsl:choose> 
    696                     </td> 
    697                     <td> 
    698                       -- 
    699                       <strong><xsl:value-of select="end/timezone/id"/></strong> 
    700                     </td> 
    701                   </tr> 
    702                 </table> 
    703               </xsl:when> 
    704               <xsl:otherwise> 
    705                 <!-- otherwise, timezones are the same: display as a single line  --> 
    706                 <xsl:value-of select="start/timezone/dayname"/>, <xsl:value-of select="start/timezone/longdate"/><xsl:text> </xsl:text> 
    707                 <xsl:if test="start/allday = 'false'"> 
    708                   <span class="time"><xsl:value-of select="start/timezone/time"/></span> 
    709                 </xsl:if> 
    710                 <xsl:if test="(end/timezone/longdate != start/timezone/longdate) or 
    711                               ((end/timezone/longdate = start/timezone/longdate) and (end/timezone/time != start/timezone/time))"> - </xsl:if> 
    712                 <xsl:if test="end/timezone/longdate != start/timezone/longdate"> 
    713                   <xsl:value-of select="substring(end/timezone/dayname,1,3)"/>, <xsl:value-of select="end/timezone/longdate"/><xsl:text> </xsl:text> 
    714                 </xsl:if> 
    715                 <xsl:choose> 
    716                   <xsl:when test="start/allday = 'true'"> 
    717                     <span class="time"><em> <xsl:copy-of select="$bwStr-SgEv-AllDay"/></em></span> 
    718                   </xsl:when> 
    719                   <xsl:when test="end/timezone/longdate != start/timezone/longdate"> 
    720                     <span class="time"><xsl:value-of select="end/timezone/time"/></span> 
    721                   </xsl:when> 
    722                   <xsl:when test="end/timezone/time != start/timezone/time"> 
    723                     <span class="time"><xsl:value-of select="end/timezone/time"/></span> 
    724                   </xsl:when> 
    725                 </xsl:choose> 
    726                 <xsl:text> </xsl:text> 
    727                 -- 
    728                 <strong><xsl:value-of select="start/timezone/id"/></strong> 
    729               </xsl:otherwise> 
    730             </xsl:choose> 
    731           </xsl:if> 
    732         </td> 
    733         <th class="icalIcon" rowspan="2"> 
    734           <div id="eventIcons"> 
    735             <a href="{$privateCal}/event/addEventRef.do?calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="{$bwStr-SgEv-AddEventToMyCalendar}" target="myCalendar"> 
    736               <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon.gif" width="20" height="26" border="0" alt="Add event to MyCalendar"/> 
    737               <xsl:copy-of select="$bwStr-SgEv-AddToMyCalendar"/> 
    738             </a> 
    739             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    740             <a href="{$export}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="{$bwStr-SgEv-DownloadEvent}"> 
    741               <img src="{$resourcesRoot}/images/std-ical_icon.gif" width="20" height="26" border="0" alt="Download this event"/> 
    742              <xsl:copy-of select="$bwStr-SgEv-Download"/></a> 
    743           </div> 
    744         </th> 
    745       </tr> 
    746       <tr> 
    747         <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-Where"/></td> 
    748         <td class="fieldval"> 
    749           <xsl:choose> 
    750             <xsl:when test="location/link=''"> 
    751               <xsl:value-of select="location/address"/> 
    752             </xsl:when> 
    753             <xsl:otherwise> 
    754               <xsl:variable name="locationLink" select="location/link"/> 
    755               <a href="{$locationLink}"> 
    756                 <xsl:value-of select="location/address"/> 
    757               </a> 
    758             </xsl:otherwise> 
    759           </xsl:choose> 
    760           <xsl:if test="location/subaddress!=''"> 
    761             <br/><xsl:value-of select="location/subaddress"/> 
    762           </xsl:if> 
    763         </td> 
    764       </tr> 
    765       <tr> 
    766         <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-Description"/></td> 
    767         <td colspan="2" class="fieldval description"> 
    768           <xsl:if test="xproperties/node()[name()='X-BEDEWORK-IMAGE']"> 
    769             <xsl:variable name="bwImage"><xsl:value-of select="xproperties/node()[name()='X-BEDEWORK-IMAGE']/values/text"/></xsl:variable> 
    770             <img src="{$bwImage}" class="bwEventImage"/> 
    771           </xsl:if> 
    772           <xsl:call-template name="replace"> 
    773             <xsl:with-param name="string" select="description"/> 
    774             <xsl:with-param name="pattern" select="'&#xA;'"/> 
    775             <xsl:with-param name="replacement"><br/></xsl:with-param> 
    776           </xsl:call-template> 
    777         </td> 
    778       </tr> 
    779       <xsl:if test="status !='' and status != 'CONFIRMED'"> 
    780         <tr> 
    781           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-STATUS"/></td> 
    782           <td class="fieldval"> 
    783             <xsl:value-of select="status"/> 
    784           </td> 
    785         </tr> 
    786       </xsl:if> 
    787       <xsl:if test="cost!=''"> 
    788         <tr> 
    789           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-Cost"/></td> 
    790           <td colspan="2" class="fieldval"><xsl:value-of select="cost"/></td> 
    791         </tr> 
    792       </xsl:if> 
    793       <xsl:if test="link != ''"> 
    794         <tr> 
    795           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-See"/></td> 
    796           <td colspan="2" class="fieldval"> 
    797             <xsl:variable name="link" select="link"/> 
    798             <a href="{$link}"><xsl:value-of select="link"/></a> 
    799           </td> 
    800         </tr> 
    801       </xsl:if> 
    802       <xsl:if test="contact/name!='none'"> 
    803         <tr> 
    804           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-Contact"/></td> 
    805           <td colspan="2" class="fieldval"> 
    806             <xsl:choose> 
    807               <xsl:when test="contact/link=''"> 
    808                 <xsl:value-of select="contact/name"/> 
    809               </xsl:when> 
    810               <xsl:otherwise> 
    811                 <xsl:variable name="sponsorLink" select="contact/link"/> 
    812                 <a href="{$sponsorLink}"> 
    813                   <xsl:value-of select="contact/name"/> 
    814                 </a> 
    815               </xsl:otherwise> 
    816             </xsl:choose> 
    817             <xsl:if test="contact/phone!=''"> 
    818               <br /><xsl:value-of select="contact/phone"/> 
    819             </xsl:if> 
    820             <!-- If you want to display email addresses, uncomment the 
    821                  following 8 lines. --> 
    822             <!-- <xsl:if test="contact/email!=''"> 
    823               <br /> 
    824               <xsl:variable name="email" select="contact/email"/> 
    825               <xsl:variable name="subject" select="summary"/> 
    826               <a href="mailto:{$email}&amp;subject={$subject}"> 
    827                 <xsl:value-of select="contact/email"/> 
    828               </a> 
    829             </xsl:if> --> 
    830           </td> 
    831         </tr> 
    832       </xsl:if> 
    833       <xsl:if test="comments/comment"> 
    834         <tr> 
    835           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-Comments"/></td> 
    836           <td class="fieldval comments"> 
    837             <xsl:for-each select="comments/comment"> 
    838               <p><xsl:value-of select="value"/></p> 
    839             </xsl:for-each> 
    840           </td> 
    841         </tr> 
    842       </xsl:if> 
    843       <xsl:if test="xproperties/X-BEDEWORK-ALIAS"> 
    844         <tr> 
    845           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-TopicalArea"/></td> 
    846           <td class="fieldval"> 
    847             <xsl:for-each select="xproperties/X-BEDEWORK-ALIAS"> 
    848               <xsl:variable name="calUrl" select="values/text"/> 
    849               <a href="{$setSelection}&amp;virtualPath={$calUrl}&amp;setappvar=curCollection({$calUrl})"> 
    850                 <xsl:call-template name="substring-afterLastInstanceOf"> 
    851                   <xsl:with-param name="string" select="values/text"/> 
    852                   <xsl:with-param name="char">/</xsl:with-param> 
    853                 </xsl:call-template> 
    854               </a><xsl:if test="position()!=last()">, </xsl:if> 
    855             </xsl:for-each> 
    856           </td> 
    857         </tr> 
    858       </xsl:if> 
    859       <xsl:if test="categories/category"> 
    860         <tr> 
    861           <td class="fieldname"><xsl:copy-of select="$bwStr-SgEv-Categories"/></td> 
    862           <td class="fieldval"> 
    863             <xsl:for-each select="categories/category"> 
    864               <xsl:value-of select="word"/><xsl:if test="position() != last()">, </xsl:if> 
    865             </xsl:for-each> 
    866           </td> 
    867         </tr> 
    868       </xsl:if> 
    869       <!--  xsl:if test="calendar/path!=''"> 
    870         <tr> 
    871           <td class="fieldname">Calendar:</td> 
    872           <td class="fieldval"> 
    873             <xsl:variable name="calUrl" select="calendar/encodedPath"/> 
    874             <a href="{$setSelection}&amp;calUrl={$calUrl}"> 
    875               <xsl:value-of select="calendar/name"/> 
    876             </a> 
    877           </td> 
    878         </tr> 
    879       </xsl:if--> 
    880     </table> 
    881   </xsl:template> 
    882  
    883   <!--==== LIST VIEW  (for day, week, and month) ====--> 
    884   <xsl:template name="listView"> 
    885     <table id="listTable" border="0" cellpadding="0" cellspacing="0"> 
    886       <xsl:choose> 
    887         <xsl:when test="not(/bedework/eventscalendar/year/month/week/day/event)"> 
    888           <tr> 
    889             <td class="noEventsCell"> 
    890               <xsl:copy-of select="$bwStr-LsVw-NoEventsToDisplay"/> 
    891             </td> 
    892           </tr> 
    893         </xsl:when> 
    894         <xsl:otherwise> 
    895           <xsl:for-each select="/bedework/eventscalendar/year/month/week/day[event]"> 
    896             <xsl:if test="/bedework/periodname='Week' or /bedework/periodname='Month' or /bedework/periodname=''"> 
    897               <tr> 
    898                 <td colspan="5" class="dateRow"> 
    899                    <xsl:variable name="date" select="date"/> 
    900                    <a href="{$setViewPeriod}&amp;viewType=dayView&amp;date={$date}"> 
    901                      <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/> 
    902                    </a> 
    903                 </td> 
    904               </tr> 
    905             </xsl:if> 
    906             <xsl:for-each select="event"> 
    907               <xsl:variable name="id" select="id"/> 
    908               <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    909               <xsl:variable name="guid" select="guid"/> 
    910               <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    911               <tr> 
    912                 <xsl:variable name="dateRangeStyle"> 
    913                   <xsl:choose> 
    914                     <xsl:when test="start/shortdate = parent::day/shortdate"> 
    915                       <xsl:choose> 
    916                         <xsl:when test="start/allday = 'true'">dateRangeCrossDay</xsl:when> 
    917                         <xsl:when test="start/hour24 &lt; 6">dateRangeEarlyMorning</xsl:when> 
    918                         <xsl:when test="start/hour24 &lt; 12">dateRangeMorning</xsl:when> 
    919                         <xsl:when test="start/hour24 &lt; 18">dateRangeAfternoon</xsl:when> 
    920                         <xsl:otherwise>dateRangeEvening</xsl:otherwise> 
    921                       </xsl:choose> 
    922                     </xsl:when> 
    923                     <xsl:otherwise>dateRangeCrossDay</xsl:otherwise> 
    924                   </xsl:choose> 
    925                 </xsl:variable> 
    926                 <xsl:choose> 
    927                   <xsl:when test="start/allday = 'true' and 
    928                                   start/shortdate = end/shortdate"> 
    929                     <td class="{$dateRangeStyle} center" colspan="3"> 
    930                       <xsl:copy-of select="$bwStr-LsVw-AllDay"/> 
    931                     </td> 
    932                   </xsl:when> 
    933                   <xsl:when test="start/shortdate = end/shortdate and 
    934                                   start/time = end/time"> 
    935                     <td class="{$dateRangeStyle} center" colspan="3"> 
    936                       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    937                         <xsl:value-of select="start/time"/> 
    938                       </a> 
    939                     </td> 
    940                   </xsl:when> 
    941                   <xsl:otherwise> 
    942                     <td class="{$dateRangeStyle} right"> 
    943                       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    944                       <xsl:choose> 
    945                         <xsl:when test="start/allday = 'true' and 
    946                                         parent::day/shortdate = start/shortdate"> 
    947                           <xsl:copy-of select="$bwStr-LsVw-Today"/> 
    948                         </xsl:when> 
    949                         <xsl:when test="parent::day/shortdate != start/shortdate"> 
    950                           <span class="littleArrow">&#171;</span>&#160; 
    951                           <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/> 
    952                         </xsl:when> 
    953                         <xsl:otherwise> 
    954                           <xsl:value-of select="start/time"/> 
    955                         </xsl:otherwise> 
    956                       </xsl:choose> 
    957                       </a> 
    958                     </td> 
    959                     <td class="{$dateRangeStyle} center"> 
    960                       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">-</a> 
    961                     </td> 
    962                     <td class="{$dateRangeStyle} left"> 
    963                       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    964                       <xsl:choose> 
    965                         <xsl:when test="end/allday = 'true' and 
    966                                         parent::day/shortdate = end/shortdate"> 
    967                           <xsl:copy-of select="$bwStr-LsVw-Today"/> 
    968                         </xsl:when> 
    969                         <xsl:when test="parent::day/shortdate != end/shortdate"> 
    970                           <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/> 
    971                           &#160;<span class="littleArrow">&#187;</span> 
    972                         </xsl:when> 
    973                         <xsl:otherwise> 
    974                           <xsl:value-of select="end/time"/> 
    975                         </xsl:otherwise> 
    976                       </xsl:choose> 
    977                       </a> 
    978                     </td> 
    979                   </xsl:otherwise> 
    980                 </xsl:choose> 
    981                 <xsl:variable name="descriptionClass"> 
    982                   <xsl:choose> 
    983                     <xsl:when test="status='CANCELLED'">description bwStatusCancelled</xsl:when> 
    984                     <xsl:when test="status='TENTATIVE'">description bwStatusTentative</xsl:when> 
    985                     <xsl:otherwise><xsl:copy-of select="$bwStr-LsVw-Description"/></xsl:otherwise> 
    986                   </xsl:choose> 
    987                 </xsl:variable> 
    988                 <!-- Subscription styles. 
    989                      These are set in the add/modify subscription forms in the admin client; 
    990                      if present, these override the background-color set by eventClass. The 
    991                      subscription styles should not be used for canceled events (tentative is ok). --> 
    992                 <xsl:variable name="subscriptionClass"> 
    993                   <xsl:if test="status != 'CANCELLED'"> 
    994                     <xsl:apply-templates select="categories" mode="customEventColor"/> 
    995                   </xsl:if> 
    996                 </xsl:variable> 
    997                 <td class="{$descriptionClass} {$subscriptionClass}"> 
    998                   <xsl:if test="status='CANCELLED'"><strong><xsl:copy-of select="$bwStr-LsVw-Canceled"/><xsl:text> </xsl:text></strong></xsl:if> 
    999                   <xsl:choose> 
    1000                     <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
    1001                       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    1002                         <strong> 
    1003                           <xsl:value-of select="summary"/>: 
    1004                         </strong> 
    1005                         <xsl:value-of select="description"/>&#160; 
    1006                         <em> 
    1007                           <xsl:value-of select="location/address"/> 
    1008                           <xsl:if test="location/subaddress != ''"> 
    1009                             , <xsl:value-of select="location/subaddress"/> 
    1010                           </xsl:if>.&#160; 
    1011                           <xsl:if test="cost!=''"> 
    1012                             <xsl:value-of select="cost"/>.&#160; 
    1013                           </xsl:if> 
    1014                           <xsl:if test="contact/name!='none'"> 
    1015                             <xsl:copy-of select="$bwStr-LsVw-Contact"/><xsl:text> </xsl:text><xsl:value-of select="contact/name"/> 
    1016                           </xsl:if> 
    1017                         </em> 
    1018                         - 
    1019                         <span class="eventSubscription"> 
    1020                           <xsl:if test="xproperties/X-BEDEWORK-ALIAS"> 
    1021                             <xsl:for-each select="xproperties/X-BEDEWORK-ALIAS"> 
    1022                               <xsl:call-template name="substring-afterLastInstanceOf"> 
    1023                                 <xsl:with-param name="string" select="values/text"/> 
    1024                                 <xsl:with-param name="char">/</xsl:with-param> 
    1025                               </xsl:call-template> 
    1026                               <xsl:if test="position()!=last()">, </xsl:if> 
    1027                             </xsl:for-each> 
    1028                           </xsl:if> 
    1029                         </span> 
    1030                       </a> 
    1031                       <xsl:if test="link != ''"> 
    1032                         <xsl:variable name="link" select="link"/> 
    1033                         <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a> 
    1034                       </xsl:if> 
    1035                     </xsl:when> 
    1036                     <xsl:otherwise> 
    1037                       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    1038                         <xsl:value-of select="summary"/> 
    1039                         <xsl:if test="location/address != ''">, <xsl:value-of select="location/address"/></xsl:if> 
    1040                          - 
    1041                         <span class="eventSubscription"> 
    1042                           <xsl:if test="xproperties/X-BEDEWORK-ALIAS"> 
    1043                             <xsl:for-each select="xproperties/X-BEDEWORK-ALIAS"> 
    1044                               <xsl:call-template name="substring-afterLastInstanceOf"> 
    1045                                 <xsl:with-param name="string" select="values/text"/> 
    1046                                 <xsl:with-param name="char">/</xsl:with-param> 
    1047                               </xsl:call-template> 
    1048                               <xsl:if test="position()!=last()">, </xsl:if> 
    1049                             </xsl:for-each> 
    1050                           </xsl:if> 
    1051                         </span> 
    1052                       </a> 
    1053                     </xsl:otherwise> 
    1054                   </xsl:choose> 
    1055                 </td> 
    1056                 <td class="icons"> 
    1057                   <a href="{$privateCal}/event/addEventRef.do?calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="{$bwStr-LsVw-AddEventToMyCalendar}" target="myCalendar"> 
    1058                     <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="{$bwStr-LsVw-AddEventToMyCalendar}"/> 
    1059                   </a> 
    1060                   <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/> 
    1061                   <a href="{$export}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="{$bwStr-LsVw-DownloadEvent}"> 
    1062                     <img src="{$resourcesRoot}/images/std-ical_icon_small.gif" width="12" height="16" border="0" alt="{$bwStr-LsVw-DownloadEvent}"/> 
    1063                   </a> 
    1064                 </td> 
    1065               </tr> 
    1066             </xsl:for-each> 
    1067           </xsl:for-each> 
    1068         </xsl:otherwise> 
    1069       </xsl:choose> 
    1070     </table> 
    1071   </xsl:template> 
    1072  
    1073   <!--==== LIST EVENTS - for listing discrete events ====--> 
    1074   <xsl:template match="events" mode="eventList"> 
    1075     <h2 class="bwStatusConfirmed"> 
    1076       <!-- <form name="bwListEventsForm" action="{$listEvents}" method="post"> 
    1077         <input type="hidden" name="setappvar"/>--> 
    1078         <xsl:copy-of select="$bwStr-LsEv-Next7Days"/> 
    1079         <!-- 
    1080         <span id="bwListEventsFormControls"> 
    1081           <select name="catuid" onchange="this.form.submit();"> 
    1082             <option value="">filter by category...</option> 
    1083             <xsl:for-each select="/bedework/categories/category"> 
    1084               <option> 
    1085                 <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute> 
    1086                 <xsl:value-of select="keyword"/> 
    1087               </option> 
    1088             </xsl:for-each> 
    1089           </select> 
    1090           <select name="days" onchange="this.form.submit();"> 
    1091             <xsl:call-template name="buildListEventsDaysOptions"> 
    1092               <xsl:with-param name="i">1</xsl:with-param> 
    1093               <xsl:with-param name="total">31</xsl:with-param> 
    1094             </xsl:call-template> 
    1095           </select> 
    1096         </span> 
    1097       </form>--> 
    1098     </h2> 
    1099  
    1100     <div id="listEvents"> 
    1101       <ul> 
    1102         <xsl:choose> 
    1103           <xsl:when test="not(event)"> 
    1104             <li><xsl:copy-of select="$bwStr-LsEv-NoEventsToDisplay"/></li> 
    1105           </xsl:when> 
    1106           <xsl:otherwise> 
    1107             <xsl:for-each select="event"> 
    1108               <xsl:variable name="id" select="id"/> 
    1109               <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    1110               <xsl:variable name="guid" select="guid"/> 
    1111               <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    1112               <li> 
    1113                 <xsl:attribute name="class"> 
    1114                   <xsl:choose> 
    1115                     <xsl:when test="status='CANCELLED'">bwStatusCancelled</xsl:when> 
    1116                     <xsl:when test="status='TENTATIVE'">bwStatusTentative</xsl:when> 
    1117                   </xsl:choose> 
    1118                 </xsl:attribute> 
    1119  
    1120                 <xsl:if test="status='CANCELLED'"><strong><xsl:copy-of select="$bwStr-LsEv-Canceled"/><xsl:text> </xsl:text></strong></xsl:if> 
    1121                 <xsl:if test="status='TENTATIVE'"><em><xsl:copy-of select="$bwStr-LsEv-Tentative"/><xsl:text> </xsl:text></em></xsl:if> 
    1122  
    1123                 <a class="title" href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    1124                   <xsl:value-of select="summary"/> 
    1125                 </a><xsl:if test="location/address != ''">, <xsl:value-of select="location/address"/></xsl:if> 
    1126                 <xsl:if test="/bedework/appvar[key='listEventsSummaryMode']/value='details'"> 
    1127                   <xsl:if test="location/subaddress != ''"> 
    1128                     , <xsl:value-of select="location/subaddress"/> 
    1129                   </xsl:if> 
    1130                 </xsl:if> 
    1131  
    1132                 <xsl:text> </xsl:text> 
    1133                 <a href="{$privateCal}/event/addEventRef.do?calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" title="{$bwStr-LsVw-AddEventToMyCalendar}" target="myCalendar"> 
    1134                   <img class="addref" src="{$resourcesRoot}/images/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="{$bwStr-LsVw-AddEventToMyCalendar}"/> 
    1135                 </a> 
    1136                 <xsl:text> </xsl:text> 
    1137                 <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/> 
    1138                 <a href="{$export}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;contentName={$eventIcalName}" title="{$bwStr-LsEv-DownloadEvent}"> 
    1139                   <img src="{$resourcesRoot}/images/std-ical_icon_small.gif" width="12" height="16" border="0" alt="{$bwStr-LsEv-DownloadEvent}"/> 
    1140                 </a> 
    1141  
    1142                 <br/> 
    1143  
    1144                 <xsl:value-of select="substring(start/dayname,1,3)"/>, 
    1145                 <xsl:value-of select="start/longdate"/> 
    1146                 <xsl:text> </xsl:text> 
    1147                 <xsl:if test="start/allday != 'true'"> 
    1148                   <xsl:value-of select="start/time"/> 
    1149                 </xsl:if> 
    1150                 <xsl:choose> 
    1151                   <xsl:when test="start/shortdate != end/shortdate"> 
    1152                     - 
    1153                     <xsl:value-of select="substring(end/dayname,1,3)"/>, 
    1154                     <xsl:value-of select="end/longdate"/> 
    1155                     <xsl:text> </xsl:text> 
    1156                     <xsl:if test="start/allday != 'true'"> 
    1157                       <xsl:value-of select="end/time"/> 
    1158                     </xsl:if> 
    1159                   </xsl:when> 
    1160                   <xsl:otherwise> 
    1161                     <xsl:if test="start/time != end/time"> 
    1162                       - 
    1163                       <xsl:value-of select="end/time"/> 
    1164                     </xsl:if> 
    1165                   </xsl:otherwise> 
    1166                 </xsl:choose> 
    1167  
    1168                 <xsl:if test="/bedework/appvar[key='listEventsSummaryMode']/value='details'"> 
    1169                   <br/> 
    1170                   <xsl:value-of select="description"/> 
    1171                   <xsl:if test="link != ''"> 
    1172                     <br/> 
    1173                     <xsl:variable name="link" select="link"/> 
    1174                     <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a> 
    1175                   </xsl:if> 
    1176                   <xsl:if test="categories/category"> 
    1177                     <br/> 
    1178                     <xsl:copy-of select="$bwStr-LsEv-Categories"/> 
    1179                     <xsl:for-each select="categories/category"> 
    1180                       <xsl:value-of select="word"/><xsl:if test="position() != last()">, </xsl:if> 
    1181                     </xsl:for-each> 
    1182                   </xsl:if> 
    1183                   <br/> 
    1184                   <em> 
    1185                     <xsl:if test="cost!=''"> 
    1186                       <xsl:value-of select="cost"/>.&#160; 
    1187                     </xsl:if> 
    1188                     <xsl:if test="contact/name!='none'"> 
    1189                       <xsl:copy-of select="$bwStr-LsEv-Contact"/><xsl:text> </xsl:text><xsl:value-of select="contact/name"/> 
    1190                     </xsl:if> 
    1191                   </em> 
    1192                 </xsl:if> 
    1193  
    1194               </li> 
    1195             </xsl:for-each> 
    1196           </xsl:otherwise> 
    1197         </xsl:choose> 
    1198       </ul> 
    1199     </div> 
    1200   </xsl:template> 
    1201  
    1202   <xsl:template name="buildListEventsDaysOptions"> 
    1203     <xsl:param name="i">1</xsl:param> 
    1204     <xsl:param name="total">31</xsl:param> 
    1205     <xsl:param name="default">7</xsl:param> 
    1206     <xsl:variable name="selected"><xsl:value-of select="/bedework/appvar[key='listEventsDays']/value"/></xsl:variable> 
    1207  
    1208     <option onclick="this.form.setappvar.value='listEventsDay({$i})'"> 
    1209       <xsl:attribute name="value"><xsl:value-of select="$i"/></xsl:attribute> 
    1210       <xsl:if test="($selected != '' and $i = $selected) or ($selected = '' and $i = $default)"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if> 
    1211       <xsl:value-of select="$i"/> 
    1212     </option> 
    1213  
    1214     <xsl:if test="$i &lt; $total"> 
    1215       <xsl:call-template name="buildListEventsDaysOptions"> 
    1216         <xsl:with-param name="i"><xsl:value-of select="$i + 1"/></xsl:with-param> 
    1217         <xsl:with-param name="total"><xsl:value-of select="$total"/></xsl:with-param> 
    1218         <xsl:with-param name="default"><xsl:value-of select="$default"/></xsl:with-param> 
    1219       </xsl:call-template> 
    1220     </xsl:if> 
    1221  
    1222   </xsl:template> 
    1223  
    1224   <!--==== WEEK CALENDAR VIEW ====--> 
    1225   <xsl:template name="weekView"> 
    1226     <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
    1227       <tr> 
    1228         <xsl:for-each select="/bedework/daynames/val"> 
    1229           <th class="dayHeading"><xsl:value-of select="."/></th> 
    1230         </xsl:for-each> 
    1231       </tr> 
    1232       <tr> 
    1233         <xsl:for-each select="/bedework/eventscalendar/year/month/week/day"> 
    1234           <xsl:variable name="dayPos" select="position()"/> 
    1235           <xsl:if test="filler='false'"> 
    1236             <td> 
    1237               <xsl:if test="/bedework/now/date = date"> 
    1238                 <xsl:attribute name="class">today</xsl:attribute> 
    1239               </xsl:if> 
    1240               <xsl:variable name="dayDate" select="date"/> 
    1241               <a href="{$setViewPeriod}&amp;viewType=dayView&amp;date={$dayDate}" class="dayLink"> 
    1242                 <xsl:value-of select="value"/> 
    1243               </a> 
    1244               <xsl:if test="event"> 
    1245                 <ul> 
    1246                   <xsl:apply-templates select="event" mode="calendarLayout"> 
    1247                     <xsl:with-param name="dayPos" select="$dayPos"/> 
    1248                   </xsl:apply-templates> 
    1249                 </ul> 
    1250               </xsl:if> 
    1251             </td> 
    1252           </xsl:if> 
    1253         </xsl:for-each> 
    1254       </tr> 
    1255     </table> 
    1256   </xsl:template> 
    1257  
    1258   <!--==== MONTH CALENDAR VIEW ====--> 
    1259   <xsl:template name="monthView"> 
    1260     <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
    1261       <tr> 
    1262         <xsl:for-each select="/bedework/daynames/val"> 
    1263           <th class="dayHeading"><xsl:value-of select="."/></th> 
    1264         </xsl:for-each> 
    1265       </tr> 
    1266       <xsl:for-each select="/bedework/eventscalendar/year/month/week"> 
    1267         <tr> 
    1268           <xsl:for-each select="day"> 
    1269             <xsl:variable name="dayPos" select="position()"/> 
    1270             <xsl:choose> 
    1271               <xsl:when test="filler='true'"> 
    1272                 <td class="filler">&#160;</td> 
    1273               </xsl:when> 
    1274               <xsl:otherwise> 
    1275                 <td> 
    1276                   <xsl:if test="/bedework/now/date = date"> 
    1277                     <xsl:attribute name="class">today</xsl:attribute> 
    1278                   </xsl:if> 
    1279                   <xsl:variable name="dayDate" select="date"/> 
    1280                   <a href="{$setViewPeriod}&amp;viewType=dayView&amp;date={$dayDate}" class="dayLink"> 
    1281                     <xsl:value-of select="value"/> 
    1282                   </a> 
    1283                   <xsl:if test="event"> 
    1284                     <ul> 
    1285                       <xsl:apply-templates select="event" mode="calendarLayout"> 
    1286                         <xsl:with-param name="dayPos" select="$dayPos"/> 
    1287                       </xsl:apply-templates> 
    1288                     </ul> 
    1289                   </xsl:if> 
    1290                 </td> 
    1291               </xsl:otherwise> 
    1292             </xsl:choose> 
    1293           </xsl:for-each> 
    1294         </tr> 
    1295       </xsl:for-each> 
    1296     </table> 
    1297   </xsl:template> 
    1298  
    1299   <!--== EVENTS IN THE CALENDAR GRID ==--> 
    1300   <xsl:template match="event" mode="calendarLayout"> 
    1301     <xsl:param name="dayPos"/> 
    1302     <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    1303     <xsl:variable name="guid" select="guid"/> 
    1304     <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    1305     <xsl:variable name="eventClass"> 
    1306       <xsl:choose> 
    1307         <!-- Special styles for the month grid --> 
    1308         <xsl:when test="status='CANCELLED'">eventCancelled</xsl:when> 
    1309         <xsl:when test="status='TENTATIVE'">eventTentative</xsl:when> 
    1310         <!-- Default alternating colors for all standard events --> 
    1311         <xsl:when test="position() mod 2 = 1">eventLinkA</xsl:when> 
    1312         <xsl:otherwise>eventLinkB</xsl:otherwise> 
    1313       </xsl:choose> 
    1314     </xsl:variable> 
    1315     <!-- Subscription styles. 
    1316          These are set in the add/modify subscription forms in the admin client; 
    1317          if present, these override the background-color set by eventClass. The 
    1318          subscription styles should not be used for canceled events (tentative is ok). --> 
    1319     <xsl:variable name="subscriptionClass"> 
    1320       <xsl:if test="status != 'CANCELLED'"> 
    1321         <xsl:apply-templates select="categories" mode="customEventColor"/> 
    1322       </xsl:if> 
    1323     </xsl:variable> 
    1324     <li> 
    1325       <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" class="{$eventClass} {$subscriptionClass}"> 
    1326         <xsl:if test="status='CANCELLED'"><xsl:copy-of select="$bwStr-EvCG-CanceledColon"/><xsl:text> </xsl:text></xsl:if> 
    1327         <xsl:choose> 
    1328           <xsl:when test="start/shortdate != ../shortdate"> 
    1329             <xsl:copy-of select="$bwStr-EvCG-Cont"/> 
    1330           </xsl:when> 
    1331           <xsl:when test="start/allday = 'false'"> 
    1332             <xsl:value-of select="start/time"/>: 
    1333           </xsl:when> 
    1334           <xsl:otherwise> 
    1335             <xsl:copy-of select="$bwStr-EvCG-AllDayColon"/> 
    1336           </xsl:otherwise> 
    1337         </xsl:choose> 
    1338         <xsl:value-of select="summary"/> 
    1339         <xsl:variable name="eventTipClass"> 
    1340           <xsl:choose> 
    1341             <xsl:when test="$dayPos &gt; 5">eventTipReverse</xsl:when> 
    1342             <xsl:otherwise>eventTip</xsl:otherwise> 
    1343           </xsl:choose> 
    1344         </xsl:variable> 
    1345         <span class="{$eventTipClass}"> 
    1346           <xsl:if test="status='CANCELLED'"><span class="eventTipStatusCancelled"><xsl:copy-of select="$bwStr-EvCG-CanceledColon"/></span></xsl:if> 
    1347           <xsl:if test="status='TENTATIVE'"><span class="eventTipStatusTentative"><xsl:copy-of select="$bwStr-EvCG-Tentative"/></span></xsl:if> 
    1348           <strong><xsl:value-of select="summary"/></strong><br/> 
    1349           <xsl:copy-of select="$bwStr-EvCG-Time"/> 
    1350           <xsl:choose> 
    1351             <xsl:when test="start/allday = 'true'"> 
    1352               <xsl:copy-of select="$bwStr-EvCG-AllDay"/> 
    1353             </xsl:when> 
    1354             <xsl:otherwise> 
    1355               <xsl:if test="start/shortdate != ../shortdate"> 
    1356                 <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/> 
    1357                 <xsl:text> </xsl:text> 
    1358               </xsl:if> 
    1359               <xsl:value-of select="start/time"/> 
    1360               <xsl:if test="(start/time != end/time) or (start/shortdate != end/shortdate)"> 
    1361                 - 
    1362                 <xsl:if test="end/shortdate != ../shortdate"> 
    1363                   <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/> 
    1364                   <xsl:text> </xsl:text> 
    1365                 </xsl:if> 
    1366                 <xsl:value-of select="end/time"/> 
    1367               </xsl:if> 
    1368             </xsl:otherwise> 
    1369           </xsl:choose><br/> 
    1370           <xsl:if test="location/address"> 
    1371             <xsl:copy-of select="$bwStr-EvCG-Location"/><xsl:text> </xsl:text><xsl:value-of select="location/address"/><br/> 
    1372           </xsl:if> 
    1373           <xsl:if test="xproperties/X-BEDEWORK-ALIAS"> 
    1374             <xsl:copy-of select="$bwStr-EvCG-TopicalArea"/> 
    1375               <xsl:for-each select="xproperties/X-BEDEWORK-ALIAS"> 
    1376                 <xsl:call-template name="substring-afterLastInstanceOf"> 
    1377                   <xsl:with-param name="string" select="values/text"/> 
    1378                   <xsl:with-param name="char">/</xsl:with-param> 
    1379                 </xsl:call-template> 
    1380                 <xsl:if test="position()!=last()">, </xsl:if> 
    1381               </xsl:for-each> 
    1382           </xsl:if> 
    1383         </span> 
    1384       </a> 
    1385     </li> 
    1386   </xsl:template> 
    1387  
    1388   <xsl:template match="categories" mode="customEventColor"> 
    1389     <!-- Set custom color schemes here. 
    1390          This template looks at the categories found in the event and 
    1391          returns a color class for use with the "subscriptionClass" variable. 
    1392          The classes suggested below come from bwColors.css found in the bedework-common directory. --> 
    1393     <xsl:choose> 
    1394        <!-- 
    1395        <xsl:when test="category/value = 'Athletics'">bwltpurple</xsl:when> 
    1396        <xsl:when test="category/value = 'Arts'">bwltsalmon</xsl:when> 
    1397        --> 
    1398        <xsl:otherwise></xsl:otherwise> <!-- do nothing --> 
    1399     </xsl:choose> 
    1400   </xsl:template> 
    1401  
    1402   <!--==== YEAR VIEW ====--> 
    1403   <xsl:template name="yearView"> 
    1404     <table id="yearCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
    1405       <tr> 
    1406         <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &lt;= 3]"/> 
    1407       </tr> 
    1408       <tr> 
    1409         <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 3) and (position() &lt;= 6)]"/> 
    1410       </tr> 
    1411       <tr> 
    1412         <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 6) and (position() &lt;= 9)]"/> 
    1413       </tr> 
    1414       <tr> 
    1415         <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &gt; 9]"/> 
    1416       </tr> 
    1417     </table> 
    1418   </xsl:template> 
    1419  
    1420   <!-- year view month tables --> 
    1421   <xsl:template match="month"> 
    1422     <td> 
    1423       <table class="yearViewMonthTable" border="0" cellpadding="0" cellspacing="0"> 
    1424         <tr> 
    1425           <td colspan="8" class="monthName"> 
    1426             <xsl:variable name="firstDayOfMonth" select="week/day/date"/> 
    1427             <a href="{$setViewPeriod}&amp;viewType=monthView&amp;date={$firstDayOfMonth}"> 
    1428               <xsl:value-of select="longname"/> 
    1429             </a> 
    1430           </td> 
    1431         </tr> 
    1432         <tr> 
    1433           <th>&#160;</th> 
    1434           <xsl:for-each select="/bedework/shortdaynames/val"> 
    1435             <th><xsl:value-of select="."/></th> 
    1436           </xsl:for-each> 
    1437         </tr> 
    1438         <xsl:for-each select="week"> 
    1439           <tr> 
    1440             <td class="weekCell"> 
    1441               <xsl:variable name="firstDayOfWeek" select="day/date"/> 
    1442               <a href="{$setViewPeriod}&amp;viewType=weekView&amp;date={$firstDayOfWeek}"> 
    1443                 <xsl:value-of select="value"/> 
    1444               </a> 
    1445             </td> 
    1446             <xsl:for-each select="day"> 
    1447               <xsl:choose> 
    1448                 <xsl:when test="filler='true'"> 
    1449                   <td class="filler">&#160;</td> 
    1450                 </xsl:when> 
    1451                 <xsl:otherwise> 
    1452                   <td> 
    1453                     <xsl:if test="/bedework/now/date = date"> 
    1454                       <xsl:attribute name="class">today</xsl:attribute> 
    1455                     </xsl:if> 
    1456                     <xsl:variable name="dayDate" select="date"/> 
    1457                     <a href="{$setViewPeriod}&amp;viewType=dayView&amp;date={$dayDate}"> 
    1458                       <xsl:attribute name="class">today</xsl:attribute> 
    1459                       <xsl:value-of select="value"/> 
    1460                     </a> 
    1461                   </td> 
    1462                 </xsl:otherwise> 
    1463               </xsl:choose> 
    1464             </xsl:for-each> 
    1465           </tr> 
    1466         </xsl:for-each> 
    1467       </table> 
    1468     </td> 
    1469   </xsl:template> 
    1470  
    1471   <!--==== CALENDARS ====--> 
    1472  
    1473   <!-- list of available calendars --> 
    1474   <xsl:template match="calendars"> 
    1475     <xsl:variable name="topLevelCalCount" select="count(calendar/calendar[calType != 5 and calType != 6 and name != 'calendar'])"/> 
    1476     <table id="calPageTable" border="0" cellpadding="0" cellspacing="0"> 
    1477       <tr> 
    1478         <th colspan="2"> 
    1479           <xsl:copy-of select="$bwStr-Cals-AllTopicalAreas"/> 
    1480         </th> 
    1481       </tr> 
    1482       <tr> 
    1483         <td colspan="2" class="infoCell"> 
    1484           <p class="info"> 
    1485             <xsl:copy-of select="$bwStr-Cals-SelectTopicalArea"/> 
    1486           </p> 
    1487         </td> 
    1488       </tr> 
    1489       <tr> 
    1490         <td class="leftCell"> 
    1491           <!-- adjust the following calculations to get a balanced layout between the cells --> 
    1492           <ul class="calendarTree"> 
    1493             <xsl:apply-templates select="calendar/calendar[(calType != 5 and calType != 6 and name != 'calendar') and (position() &lt;= ceiling($topLevelCalCount div 2)+2)]" mode="calTree"/> 
    1494           </ul> 
    1495         </td> 
    1496         <td> 
    1497           <ul class="calendarTree"> 
    1498             <xsl:apply-templates select="calendar/calendar[(calType != 5 and calType != 6 and name != 'calendar') and (position() &gt; ceiling($topLevelCalCount div 2)+2)]" mode="calTree"/> 
    1499           </ul> 
    1500         </td> 
    1501       </tr> 
    1502     </table> 
    1503   </xsl:template> 
    1504  
    1505   <xsl:template match="calendar" mode="calTree"> 
    1506     <xsl:variable name="itemClass"> 
    1507       <xsl:choose> 
    1508         <xsl:when test="calType = '0'"><xsl:copy-of select="$bwStr-Calr-Folder"/></xsl:when> 
    1509         <xsl:otherwise><xsl:copy-of select="$bwStr-Calr-Calendar"/></xsl:otherwise> 
    1510       </xsl:choose> 
    1511     </xsl:variable> 
    1512     <xsl:variable name="virtualPath"><xsl:call-template name="url-encode"><xsl:with-param name="str">/user<xsl:for-each select="ancestor-or-self::calendar/name">/<xsl:value-of select="."/></xsl:for-each></xsl:with-param></xsl:call-template></xsl:variable> 
    1513     <li class="{$itemClass}"> 
    1514       <xsl:variable name="calPath" select="path"/> 
    1515       <a href="{$setSelection}&amp;virtualPath={$virtualPath}&amp;setappvar=curCollection({$calPath})" title="view calendar"><xsl:value-of select="name"/></a> 
    1516       <xsl:variable name="calPath" select="path"/> 
    1517       <span class="exportCalLink"> 
    1518         <a href="{$calendar-fetchForExport}&amp;calPath={$calPath}&amp;virtualPath={$virtualPath}" title="export calendar as iCal"> 
    1519           <img src="{$resourcesRoot}/images/calIconExport-sm.gif" width="13" height="13" alt="export calendar" border="0"/> 
    1520         </a> 
    1521       </span> 
    1522       <xsl:if test="calendar"> 
    1523         <ul> 
    1524           <xsl:apply-templates select="calendar" mode="calTree"/> 
    1525         </ul> 
    1526       </xsl:if> 
    1527     </li> 
    1528   </xsl:template> 
    1529  
    1530   <!-- calendar export page --> 
    1531   <xsl:template match="currentCalendar" mode="export"> 
    1532     <h2 class="bwStatusConfirmed"><xsl:copy-of select="$bwStr-Cals-ExportCals"/></h2> 
    1533     <div id="export"> 
    1534       <p> 
    1535         <strong><xsl:copy-of select="$bwStr-Cals-CalendarToExport"/></strong> 
    1536       </p> 
    1537       <div class="indent"> 
    1538         <xsl:copy-of select="$bwStr-Cals-Name"/><xsl:text> </xsl:text><strong><em><xsl:value-of select="name"/></em></strong><br/> 
    1539         <xsl:copy-of select="$bwStr-Cals-Path"/><xsl:text> </xsl:text><xsl:value-of select="path"/> 
    1540       </div> 
    1541       <p> 
    1542         <strong><xsl:copy-of select="$bwStr-Cals-EventDateLimits"/></strong> 
    1543       </p> 
    1544       <form name="exportCalendarForm" id="exportCalendarForm" action="{$export}" method="post"> 
    1545         <input type="hidden" name="calPath"> 
    1546           <xsl:attribute name="value"><xsl:value-of select="path"/></xsl:attribute> 
    1547         </input> 
    1548         <!-- fill these on submit --> 
    1549         <input type="hidden" name="eventStartDate.year" value=""/> 
    1550         <input type="hidden" name="eventStartDate.month" value=""/> 
    1551         <input type="hidden" name="eventStartDate.day" value=""/> 
    1552         <input type="hidden" name="eventEndDate.year" value=""/> 
    1553         <input type="hidden" name="eventEndDate.month" value=""/> 
    1554         <input type="hidden" name="eventEndDate.day" value=""/> 
    1555         <!-- static fields --> 
    1556         <input type="hidden" name="nocache" value="no"/> 
    1557         <input type="hidden" name="contentName"> 
    1558           <xsl:attribute name="value"><xsl:value-of select="name"/>.ics</xsl:attribute> 
    1559         </input> 
    1560         <!-- visible fields --> 
    1561         <input type="radio" name="dateLimits" value="active" checked="checked" onclick="changeClass('exportDateRange','invisible')"/><xsl:text> </xsl:text><xsl:copy-of select="$bwStr-Cals-TodayForward"/> 
    1562         <input type="radio" name="dateLimits" value="none" onclick="changeClass('exportDateRange','invisible')"/><xsl:text> </xsl:text><xsl:copy-of select="$bwStr-Cals-AllDates"/> 
    1563         <input type="radio" name="dateLimits" value="limited" onclick="changeClass('exportDateRange','visible')"/><xsl:text> </xsl:text><xsl:copy-of select="$bwStr-Cals-DateRange"/> 
    1564         <div id="exportDateRange" class="invisible"> 
    1565           <xsl:copy-of select="$bwStr-Cals-Start"/><xsl:text> </xsl:text><input type="text" name="bwExportCalendarWidgetStartDate" id="bwExportCalendarWidgetStartDate" size="10"/> 
    1566           <span id="bwExportEndField">E<xsl:copy-of select="$bwStr-Cals-End"/><xsl:text> </xsl:text><input type="text" name="bwExportCalendarWidgetEndDate" id="bwExportCalendarWidgetEndDate" size="10"/></span> 
    1567         </div> 
    1568         <p><input type="submit" value="{$bwStr-Cals-Export}" class="bwWidgetSubmit" onclick="fillExportFields(this.form)"/></p> 
    1569       </form> 
    1570     </div> 
    1571   </xsl:template> 
    1572  
    1573   <!--==== SEARCH RESULT ====--> 
    1574   <xsl:template name="searchResult"> 
    1575     <h2 class="bwStatusConfirmed"> 
    1576       <div id="searchFilter"> 
    1577         <form name="searchForm" method="post" action="{$search}"> 
    1578           <xsl:copy-of select="$bwStr-Srch-Search"/> 
    1579           <input type="text" name="query" size="15"> 
    1580             <xsl:attribute name="value"><xsl:value-of select="/bedework/searchResults/query"/></xsl:attribute> 
    1581           </input> 
    1582           <input type="submit" name="submit" value="{$bwStr-Srch-Go}"/> 
    1583           <xsl:copy-of select="$bwStr-Srch-Limit"/> 
    1584           <xsl:choose> 
    1585             <xsl:when test="/bedework/searchResults/searchLimits = 'beforeToday'"> 
    1586               <input type="radio" name="searchLimits" value="fromToday"/><xsl:copy-of select="$bwStr-Srch-TodayForward"/> 
    1587               <input type="radio" name="searchLimits" value="beforeToday" checked="checked"/><xsl:copy-of select="$bwStr-Srch-PastDates"/> 
    1588               <input type="radio" name="searchLimits" value="none"/><xsl:copy-of select="$bwStr-Srch-AllDates"/> 
    1589             </xsl:when> 
    1590             <xsl:when test="/bedework/searchResults/searchLimits = 'none'"> 
    1591               <input type="radio" name="searchLimits" value="fromToday"/><xsl:copy-of select="$bwStr-Srch-TodayForward"/> 
    1592               <input type="radio" name="searchLimits" value="beforeToday"/><xsl:copy-of select="$bwStr-Srch-PastDates"/> 
    1593               <input type="radio" name="searchLimits" value="none" checked="checked"/><xsl:copy-of select="$bwStr-Srch-AllDates"/> 
    1594             </xsl:when> 
    1595             <xsl:otherwise> 
    1596               <input type="radio" name="searchLimits" value="fromToday" checked="checked"/><xsl:copy-of select="$bwStr-Srch-TodayForward"/> 
    1597               <input type="radio" name="searchLimits" value="beforeToday"/><xsl:copy-of select="$bwStr-Srch-PastDates"/> 
    1598               <input type="radio" name="searchLimits" value="none"/><xsl:copy-of select="$bwStr-Srch-AllDates"/> 
    1599             </xsl:otherwise> 
    1600           </xsl:choose> 
    1601         </form> 
    1602       </div> 
    1603       <xsl:copy-of select="$bwStr-Srch-SearchResult"/> 
    1604     </h2> 
    1605     <table id="searchTable" cellpadding="0" cellspacing="0"> 
    1606       <tr> 
    1607         <th colspan="5"> 
    1608           <xsl:if test="/bedework/searchResults/numPages &gt; 1"> 
    1609             <xsl:variable name="curPage" select="/bedework/searchResults/curPage"/> 
    1610             <div id="searchPageForm"> 
    1611               <xsl:copy-of select="$bwStr-Srch-Page"/> 
    1612               <xsl:if test="/bedework/searchResults/curPage != 1"> 
    1613                 <xsl:variable name="prevPage" select="number($curPage) - 1"/> 
    1614                 &lt;<a href="{$search-next}&amp;pageNum={$prevPage}"><xsl:copy-of select="$bwStr-Srch-Prev"/></a> 
    1615               </xsl:if> 
    1616               <xsl:text> </xsl:text> 
    1617  
    1618               <xsl:call-template name="searchResultPageNav"> 
    1619                 <xsl:with-param name="page"> 
    1620                   <xsl:choose> 
    1621                     <xsl:when test="number($curPage) - 10 &lt; 1">1</xsl:when> 
    1622                     <xsl:otherwise><xsl:value-of select="number($curPage) - 6"/></xsl:otherwise> 
    1623                   </xsl:choose> 
    1624                 </xsl:with-param> 
    1625               </xsl:call-template> 
    1626  
    1627               <xsl:text> </xsl:text> 
    1628               <xsl:choose> 
    1629                 <xsl:when test="$curPage != /bedework/searchResults/numPages"> 
    1630                   <xsl:variable name="nextPage" select="number($curPage) + 1"/> 
    1631                   <a href="{$search-next}&amp;pageNum={$nextPage}"><xsl:copy-of select="$bwStr-Srch-Next"/></a>&gt; 
    1632                 </xsl:when> 
    1633                 <xsl:otherwise> 
    1634                   <span class="hidden"><xsl:copy-of select="$bwStr-Srch-Next"/>&gt;</span><!-- occupy the space to keep the navigation from moving around --> 
    1635                 </xsl:otherwise> 
    1636               </xsl:choose> 
    1637             </div> 
    1638           </xsl:if> 
    1639           <xsl:value-of select="/bedework/searchResults/resultSize"/> 
    1640           <xsl:text> </xsl:text><xsl:copy-of select="$bwStr-Srch-ResultReturnedFor"/><xsl:text> </xsl:text><em><xsl:value-of select="/bedework/searchResults/query"/></em> 
    1641         </th> 
    1642       </tr> 
    1643       <xsl:if test="/bedework/searchResults/searchResult"> 
    1644         <tr class="fieldNames"> 
    1645           <td> 
    1646             <xsl:copy-of select="$bwStr-Srch-Relevance"/> 
    1647           </td> 
    1648           <td> 
    1649             <xsl:copy-of select="$bwStr-Srch-Summary"/> 
    1650           </td> 
    1651           <td> 
    1652             <xsl:copy-of select="$bwStr-Srch-DateAndTime"/> 
    1653           </td> 
    1654           <td> 
    1655             <xsl:copy-of select="$bwStr-Srch-Calendar"/> 
    1656           </td> 
    1657           <td> 
    1658             <xsl:copy-of select="$bwStr-Srch-Location"/> 
    1659           </td> 
    1660         </tr> 
    1661       </xsl:if> 
    1662       <xsl:for-each select="/bedework/searchResults/searchResult"> 
    1663         <xsl:variable name="calPath" select="event/calendar/encodedPath"/> 
    1664         <xsl:variable name="guid" select="event/guid"/> 
    1665         <xsl:variable name="recurrenceId" select="event/recurrenceId"/> 
    1666         <tr> 
    1667           <td class="relevance"> 
    1668             <xsl:value-of select="ceiling(number(score)*100)"/>% 
    1669             <img src="{$resourcesRoot}/images/spacer.gif" height="4" class="searchRelevance"> 
    1670               <xsl:attribute name="width"><xsl:value-of select="ceiling((number(score)*100) div 1.5)"/></xsl:attribute> 
    1671             </img> 
    1672           </td> 
    1673           <td> 
    1674             <a href="{$eventView}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    1675               <xsl:value-of select="event/summary"/> 
    1676             </a> 
    1677           </td> 
    1678           <td> 
    1679             <xsl:value-of select="event/start/longdate"/> 
    1680             <xsl:text> </xsl:text> 
    1681             <xsl:value-of select="event/start/time"/> 
    1682             <xsl:choose> 
    1683               <xsl:when test="event/start/longdate != event/end/longdate"> 
    1684                 - <xsl:value-of select="event/end/longdate"/> 
    1685                 <xsl:text> </xsl:text> 
    1686                 <xsl:value-of select="event/end/time"/> 
    1687               </xsl:when> 
    1688               <xsl:when test="event/start/time != event/end/time"> 
    1689                 - <xsl:value-of select="event/end/time"/> 
    1690               </xsl:when> 
    1691             </xsl:choose> 
    1692           </td> 
    1693           <td> 
    1694             <xsl:variable name="calUrl" select="event/calendar/encodedPath"/> 
    1695             <a href="{$setSelection}&amp;calUrl={$calUrl}"> 
    1696               <xsl:value-of select="event/calendar/name"/> 
    1697             </a> 
    1698           </td> 
    1699           <td> 
    1700             <xsl:value-of select="event/location/address"/> 
    1701           </td> 
    1702         </tr> 
    1703       </xsl:for-each> 
    1704     </table> 
    1705   </xsl:template> 
    1706  
    1707   <xsl:template name="searchResultPageNav"> 
    1708     <xsl:param name="page">1</xsl:param> 
    1709     <xsl:variable name="curPage" select="/bedework/searchResults/curPage"/> 
    1710     <xsl:variable name="numPages" select="/bedework/searchResults/numPages"/> 
    1711     <xsl:variable name="endPage"> 
    1712       <xsl:choose> 
    1713         <xsl:when test="number($curPage) + 6 &gt; number($numPages)"><xsl:value-of select="$numPages"/></xsl:when> 
    1714         <xsl:otherwise><xsl:value-of select="number($curPage) + 6"/></xsl:otherwise> 
    1715       </xsl:choose> 
    1716     </xsl:variable> 
    1717     <xsl:choose> 
    1718       <xsl:when test="$page = $curPage"> 
    1719         <xsl:value-of select="$page"/> 
    1720       </xsl:when> 
    1721       <xsl:otherwise> 
    1722         <a href="{$search-next}&amp;pageNum={$page}"> 
    1723           <xsl:value-of select="$page"/> 
    1724         </a> 
    1725       </xsl:otherwise> 
    1726     </xsl:choose> 
    1727     <xsl:text> </xsl:text> 
    1728     <xsl:if test="$page &lt; $endPage"> 
    1729        <xsl:call-template name="searchResultPageNav"> 
    1730          <xsl:with-param name="page" select="number($page)+1"/> 
    1731       </xsl:call-template> 
    1732     </xsl:if> 
    1733   </xsl:template> 
    1734  
    1735   <!--+++++++++++++++ System Stats ++++++++++++++++++++--> 
    1736   <xsl:template name="stats"> 
    1737     <div id="stats"> 
    1738       <h2><xsl:copy-of select="$bwStr-Stat-SysStats"/></h2> 
    1739  
    1740       <p> 
    1741         <xsl:copy-of select="$bwStr-Stat-StatsCollection"/> 
    1742       </p> 
    1743       <ul> 
    1744         <li> 
    1745           <a href="{$stats}&amp;enable=yes"><xsl:copy-of select="$bwStr-Stat-Enable"/></a> | 
    1746           <a href="{$stats}&amp;disable=yes"><xsl:copy-of select="$bwStr-Stat-Disable"/></a> 
    1747         </li> 
    1748         <li><a href="{$stats}&amp;fetch=yes"><xsl:copy-of select="$bwStr-Stat-FetchStats"/></a></li> 
    1749         <li><a href="{$stats}&amp;dump=yes"><xsl:copy-of select="$bwStr-Stat-DumpStats"/></a></li> 
    1750       </ul> 
    1751       <table id="statsTable" cellpadding="0"> 
    1752         <xsl:for-each select="/bedework/sysStats/*"> 
    1753           <xsl:choose> 
    1754             <xsl:when test="name(.) = 'header'"> 
    1755               <tr> 
    1756                 <th colspan="2"> 
    1757                   <xsl:value-of select="."/> 
    1758                 </th> 
    1759               </tr> 
    1760             </xsl:when> 
    1761             <xsl:otherwise> 
    1762               <tr> 
    1763                 <td class="label"> 
    1764                   <xsl:value-of select="label"/> 
    1765                 </td> 
    1766                 <td class="value"> 
    1767                   <xsl:value-of select="value"/> 
    1768                 </td> 
    1769               </tr> 
    1770             </xsl:otherwise> 
    1771           </xsl:choose> 
    1772         </xsl:for-each> 
    1773       </table> 
    1774     </div> 
    1775   </xsl:template> 
    1776  
    1777   <!--==== FOOTER ====--> 
    1778  
    1779   <xsl:template name="footer"> 
    1780     <div id="footer"> 
    1781       <xsl:copy-of select="$bwStr-Foot-BasedOnThe"/><xsl:text> </xsl:text><a href="http://www.bedework.org/"><xsl:copy-of select="$bwStr-Foot-BedeworkCalendarSystem"/></a> 
    1782     </div> 
    1783     <table id="skinSelectorTable" border="0" cellpadding="0" cellspacing="0"> 
    1784       <tr> 
    1785         <td class="leftCell"> 
    1786           <a href="http://www.bedework.org/"><xsl:copy-of select="$bwStr-Foot-BedeworkWebsite"/></a> | 
    1787           <a href="http://www.bedework.org/bedework/update.do?artcenterkey=35"><xsl:copy-of select="$bwStr-Foot-ProductionExamples"/></a> | 
    1788           <a href="?noxslt=yes"><xsl:copy-of select="$bwStr-Foot-ShowXML"/></a> | 
    1789           <a href="?refreshXslt=yes"><xsl:copy-of select="$bwStr-Foot-RefreshXSLT"/></a> 
    1790         </td> 
    1791         <td class="rightCell"> 
    1792           <form name="styleSelectForm" method="get" action="{$setup}"> 
    1793             <select name="setappvar" onchange="submit()"> 
    1794               <option value=""><xsl:copy-of select="$bwStr-Foot-ExampleStyles"/>:</option> 
    1795               <option value="style(green)"><xsl:copy-of select="$bwStr-Foot-Green"/></option> 
    1796               <option value="style(red)"><xsl:copy-of select="$bwStr-Foot-Red"/></option> 
    1797               <option value="style(blue)"><xsl:copy-of select="$bwStr-Foot-Blue"/></option> 
    1798             </select> 
    1799           </form> 
    1800           <form name="skinSelectForm" method="post" action="{$setup}"> 
    1801             <input type="hidden" name="setappvar" value="summaryMode(details)"/> 
    1802             <select name="skinPicker" onchange="window.location = this.value"> 
    1803               <option value="{$setup}&amp;skinNameSticky=default"><xsl:copy-of select="$bwStr-Foot-ExampleSkins"/>:</option> 
    1804               <option value="{$listEvents}&amp;setappvar=summaryMode(details)&amp;skinName=rss-list&amp;days=3"> 
    1805                                 <xsl:copy-of select="$bwStr-Foot-RSSNext3Days"/></option> 
    1806               <option value="{$listEvents}&amp;setappvar=summaryMode(details)&amp;skinName=js-list&amp;days=3&amp;contentType=text/javascript&amp;contentName=bedework.js"> 
    1807                                 <xsl:copy-of select="$bwStr-Foot-JavascriptNext3Days"/></option> 
    1808               <option value="{$setViewPeriod}&amp;viewType=todayView&amp;skinName=jsToday&amp;contentType=text/javascript&amp;contentName=bedeworkToday.js"> 
    1809                                 <xsl:copy-of select="$bwStr-Foot-JavascriptTodaysEvents"/></option> 
    1810               <option value="{$setup}&amp;browserTypeSticky=PDA"> 
    1811                                 <xsl:copy-of select="$bwStr-Foot-ForMobileBrowsers"/></option> 
    1812               <option value="{$setViewPeriod}&amp;viewType=todayView&amp;skinName=videocal"> 
    1813                                 <xsl:copy-of select="$bwStr-Foot-VideoFeed"/></option> 
    1814               <option value="{$setup}&amp;skinNameSticky=default"> 
    1815                                 <xsl:copy-of select="$bwStr-Foot-ResetToCalendarDefault"/></option> 
    1816             </select> 
    1817           </form> 
    1818         </td> 
    1819       </tr> 
    1820     </table> 
     23    <xsl:copy-of select="."/> 
    182124  </xsl:template> 
    182225</xsl:stylesheet> 
  • trunk/deployment/feeder/webapp/resources/demoskins/MainCampus/default/default/widget-json-cats.xsl

    r2409 r2416  
    4343 
    4444  <xsl:template match='/'> 
     45         
     46        <xsl:choose> 
     47      <xsl:when test="/bedework/appvar/key = 'objName'"> 
     48    var <xsl:value-of select="/bedework/appvar[key='objName']/value"/> = {"bwCategories": { 
     49      </xsl:when> 
     50      <xsl:otherwise> 
    4551    {"bwCategories": { 
     52      </xsl:otherwise> 
     53    </xsl:choose>        
    4654        "categories": [ 
    4755            <xsl:apply-templates select="/bedework/categories/category"/> 
  • trunk/deployment/feeder/webapp/resources/demoskins/MainCampus/default/default/widget-json-groups.xsl

    r2409 r2416  
    4343   
    4444  <xsl:template match='/'> 
     45        <xsl:choose> 
     46      <xsl:when test="/bedework/appvar/key = 'objName'"> 
     47    var <xsl:value-of select="/bedework/appvar[key='objName']/value"/> = {"bwGroups": { 
     48      </xsl:when> 
     49      <xsl:otherwise> 
    4550    {"bwGroups": { 
     51      </xsl:otherwise> 
     52    </xsl:choose> 
    4653        "groups": [ 
    4754            <xsl:apply-templates select="/bedework/groups/group"/>