%# BEGIN BPS TAGGED BLOCK {{{
%# 
%# COPYRIGHT:
%#  
%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
%#                                          <jesse@bestpractical.com>
%# 
%# (Except where explicitly superseded by other copyright notices)
%# 
%# 
%# LICENSE:
%# 
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
%# 
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%# 
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%# 
%# 
%# CONTRIBUTION SUBMISSION POLICY:
%# 
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
%# 
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
%# you are the copyright holder for those contributions and you grant
%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
%# 
%# END BPS TAGGED BLOCK }}}
%# font size depends on level
% if ($level ge 3) {
%   $size = $basesize-(6);
% } elsif ($level gt 0) {
%   $size = $basesize-($level * 2);
%   $padding = 2;
% }
%  else {
%   $size = $basesize;
%   $padding = 5;
% }
<ul class="topnav" >
% my $sep=0;
% my $accesskey="1";
% foreach $tab (sort keys %{$toptabs}) {
% my $current = $current_toptab || "";
% my $path = $toptabs->{$tab}->{'path'} || "";
% $path =~ s#/index.html$##gi;
% $current =~ s#/index.html$##gi;
% if ( $path eq $current) {
%     $class="currenttopnav"
% } else {
%     $class="topnav"
% } 
% my $style="";
% if ($sep) {
% $style="minor";
% } elsif ($level == 0 ) {
% $style="major";
% }
% if ($toptabs->{$tab}->{'separator'}) {
% $sep=1;
% } else {
% $sep=0;
% }
% my $url = $toptabs->{$tab}->{'path'} =~ /^https?:/i ? $toptabs->{$tab}->{'path'} : $RT::WebPath . "/" . $toptabs->{$tab}->{'path'};
<li class="<%$class%>-<%$level%>-<%$style%>"><A HREF="<% $url %>" class="<%$class%>-<%$level%>" 
<%($class eq 'currenttopnav') ? "name='focus'" : ""|n %> 
<% !$level && "accesskey='".$accesskey++."'" |n%>><% $toptabs->{$tab}->{'title'}%></A>
%# Second-level items
%# if ($current_toptab eq $toptabs->{$tab}->{'path'}) {
%# commented out by jesse on 4 jan 2003 so that tickets/search and ticket/# can
%# both have menu items
% if ($toptabs->{$tab}->{'subtabs'}) {
        <& /Elements/Menu, level => $level+1, 
                current_toptab => $toptabs->{$tab}->{'current_subtab'},
                toptabs => $toptabs->{$tab}->{'subtabs'} &></li>
% }
%# }
% }
</ul>

<%INIT>
my ($tab, $subtab, $class, $size, $padding);
my $basesize=16;

</%INIT>

<%ARGS>
$current_toptab => ""
$toptabs => undef
$level => 0
</%ARGS>