% if (@{$departures}) {

<div class="displayclean">
<ul>
% my $i = 0;
% my $dt_now = DateTime->now;
% for my $departure (@{$departures}) {
%   $i++;
%   my $route_str = q{};
%   my $via_max = @{$departure->{via} // []};
%   my $via_cur = 0;
%   for my $stop (@{$departure->{via} // []}) {
%     $via_cur++;
%     $route_str .= $stop . ($via_cur < $via_max ? ' - ' : q{});
%   }
%   my $extraclasses = q{};
%   if ($departure->{is_cancelled}) {
%     $extraclasses .= ' cancelled';
      <li class="cancelled">
%   }
%   else {
      <li>
%   }
%   my $linetype = 'bahn';
%   if ( $departure->{train_type} eq 'S' ) {
%     $linetype = 'sbahn';
%   }
%   elsif ( $departure->{train_type} eq 'IC'
%          or $departure->{train_type} eq 'ICE'
%          or $departure->{train_type} eq 'EC' ) {
%     $linetype = 'fern';
%   }
    <div class="line <%= $linetype %>">
    % if ($departure->{train_type} and $departure->{train_no}) {
%=    $departure->{train_type}
%   }
%   if ($departure->{train_line} ) {
%=    $departure->{train_line}
%   }
%   elsif ($departure->{train_no}) {
      <span class="trainno"><%= $departure->{train_no} %></span>
%   }
%   else {
%=    $departure->{train}
%   }
    </div>
%   if (@{$departure->{replaced_by}} or @{$departure->{replacement_for}}) {
      <div class="lineinfo">
%     for my $replacement (@{$departure->{replaced_by}}) {
        <span class="replaced">→ <%= $replacement %></span>
%     }
%     for my $replacement (@{$departure->{replacement_for}}) {
        <span class="replacement">↑ <%= $replacement %></span>
%     }
      </div>
%   }
    <div class="moreinfo">
    <div class="mheader">
    <div>
%   if ($departure->{train_no} or $departure->{train_line}) {
      <span class="train-line <%= $linetype %>"><%= $departure->{train_type} %>
      <%= $departure->{train_line} // $departure->{train_no} %></span>
%     if ($departure->{train_line}) {
        <span class="train-no"><%= $departure->{train_no} %></span>
%     }
%   }
%   else {
      <span class="train-line"><%= $departure->{train} // q{???} %></span>
%   }
    </div>
    <div>
%   if ($departure->{origin}) {
      <span class="train-origin"><%= $departure->{origin} %></span>
      →
%   }
    <span class="train-dest"><%= $departure->{destination} // q{???} %></span>
    </div>
%   if ($departure->{is_cancelled}) {
      <div class="minfo">Fahrt fällt aus</div>
%   }
%   elsif (defined $departure->{delay} and $departure->{delay} > 0) {
      <div class="minfo">+<%= $departure->{delay} %></div>
%   }
    </div> <!-- mheader -->
    <div class="mfooter">
    <div class="platforminfo">
%   if ($departure->{platform}) {
      Gleis <%= $departure->{platform} %>
%   }
%   if ($departure->{scheduled_platform} and $departure->{platform}
%       and $departure->{scheduled_platform} ne $departure->{platform}) {
      (nicht Gleis <%= $departure->{scheduled_platform} %>)
%   }
%   elsif ($departure->{changed_platform}) {
      (Gleiswechsel)
%   }
    </div> <!-- platforminfo -->
%   if (not $departure->{is_cancelled}) {
      <div class="timeinfo">
%     if ($departure->{sched_arrival}) {
        Ankunft: <%= $departure->{sched_arrival} %>
%       if ($departure->{arrival} and $departure->{arrival} ne $departure->{sched_arrival}) {
          (heute <%= $departure->{arrival} %>)
%       }
        <br/>
%     }
%     if ($departure->{sched_departure}) {
        Abfahrt: <%= $departure->{sched_departure} %>
%       if ($departure->{departure} and $departure->{departure} ne $departure->{sched_departure}) {
          (heute <%= $departure->{departure} %>)
%       }
        <br/>
%     }
%     if (not ($departure->{sched_arrival} or $departure->{sched_departure})) {
        Abfahrt: <%= $departure->{time} %>
%       if ($departure->{delay}) {
          (heute +<%= $departure->{delay} %>)
%       }
%     }
      </div> <!-- timeinfo -->
%   }
%   if ($departure->{route_post_diff} and @{$departure->{route_post_diff}}) {
      <div class="mroute">
      Über:
%       my $first = 0;
%       for my $stop (@{$departure->{route_post_diff} // q{???}}) {
%         if ($first++) {
            <span class="separator">–</span>
%         }
%         if ($stop->{isAdditional}) {
            <span class="additional-stop"><%= $stop->{name} %></span>
%         }
%         elsif ($stop->{isCancelled}) {
            <span class="cancelled-stop"><%= $stop->{name} %></span>
%         }
%         elsif ($self->is_important($stop->{name})) {
            <span class="important-stop"><%= $stop->{name} %></span>
%         }
%         else {
            <span class="generic-stop"><%= $stop->{name} %></span>
%         }
%       }
      </div> <!-- mroute -->
%   }
%   if ($departure->{moreinfo} and @{$departure->{moreinfo}}) {
      Meldungen:
      <ul>
%     for my $pair (@{$departure->{moreinfo}}) {
        <li>
%       if ($pair->[0]->isa('DateTime')) {
%         if ($pair->[0]->day != $dt_now->day) {
%           $pair->[0]->set_locale('de_DE');
%=          $pair->[0]->strftime('%a %H:%M')
%         }
%         else {
%=          $pair->[0]->strftime('%H:%M')
%         }
%       }
%       else {
%=        $pair->[0]
%       }
        :
        <span class="reason">
%=      $pair->[1]
        </span>
        </li>
%     }
%     if ($departure->{route_info}) {
        <li><%= $departure->{route_info} %></li>
%     }
      </ul>
%   }
    </div> <!-- mfooter -->
    </div> <!-- moreinfo -->
%   if ($departure->{info} and length $departure->{info}) {
      <span class="info">
%=    $departure->{info}
      </span>
%   }
%   else {
      <span class="route">
%=    $route_str
      </span>
%   }
    <span class="dest <%= $extraclasses %>">
%=  $departure->{destination}
    </span>
    <span class="countdown <%= $extraclasses %>">
%   if ($departure->{delay} and not $departure->{is_cancelled}) {
%     if ($show_realtime) {
%       if ($departure->{delay} > 0) {
          <span class="delaynorm">(+<%= $departure->{delay} %>)</span>
%       }
%       else {
          <span class="undelaynorm">(<%= $departure->{delay} %>)</span>
%       }
%     }
%     else {
%       if ($departure->{delay} > 0) {
          <span class="delay">(+<%= $departure->{delay} %>)</span>
%       }
%       else {
          <span class="undelay">(<%= $departure->{delay} %>)</span>
%       }
%     }
%   }
%   if (($departure->{scheduled_platform} and $departure->{platform} and
%       $departure->{scheduled_platform} ne $departure->{platform})
%       or $departure->{changed_platform}) {
      <span class="platform changed-platform">
%   }
%   else {
      <span class="platform">
%   }
%=  $departure->{platform}
    </span>
    </span>
    <span class="time <%= ($show_realtime and $departure->{delay} and not
      $departure->{is_cancelled}) ? 'delayed' : q{} %> <%= $extraclasses %>">
%   if ($show_realtime and $departure->{delay} and not $departure->{is_cancelled}) {
      <span class="delayed">
%   }
%=  $departure->{time}
    </span>
%   if ($show_realtime and $departure->{delay} and not $departure->{is_cancelled}) {
      </span>
%   }
    </li>

% }

  </ul>
  </div> <!-- displayclean -->

% }
% else {

<p>
<div class="error">No matching departures</div>
</p>

% }