<table border=0 cellpadding=2 cellspacing=0>
<tr>
% foreach my $foo (@stamps) {
% my $det = $foo->{det};

<td align="left" valign="top">
% if ($foo->{jfile} {
<% sprintf qq{<img width="$size" height"$size" src="%s">}, $foo->{jfile} %>
% } else {
% }
% if ($foo->{diff}) {

<img width="<% $size %>" height"<% $size %>" src="/model/<% $dbname %>/stamp.jpg?file=<% $foo->{diff} %>">
% if ($short < 1) {
<br><% sprintf "%s = %.1f<br>%s = %.1f<br>S/N = %.1f", $det->filter, $det->mag, 'V', mopslib_filt2V($det->mag, $det->filter, $v2filt), $det->s2n %>
<br><small>Diff | <a href="/model/<% $dbname %>/stamp.fits?file=<% $foo->{diff} %>">FITS</a></small>
% } else {
% }
<br>
<% ($det->procId & 0x1) ? qq{<img width="20" height="20" src="/images/red.png">} : '' %>
<% ($det->procId & 0x2) ? qq{<img width="20" height="20" src="/images/purple.png">} : '' %>

% } elsif ($foo->{chip}) {

</td><td align="center" valign="center">
<img width="<% $size %>" height"<% $size %>" src="/model/<% $dbname %>/stamp.jpg?file=<% $foo->{chip} %>">
% if ($short < 1) {
<br><% sprintf "%s = %.1f<br>%s = %.1f<br>S/N = %.1f", $det->filter, $det->mag, 'V', mopslib_filt2V($det->mag, $det->filter, $v2filt), $det->s2n %>
<br><small>Chip | <a href="/model/<% $dbname %>/stamp.fits?file=<% $foo->{chip} %>">FITS</a></small>
% } else {
% }
<br>
<% ($det->procId & 0x1) ? qq{<img width="20" height="20" src="/images/red.png">} : '' %>
<% ($det->procId & 0x2) ? qq{<img width="20" height="20" src="/images/purple.png">} : '' %>

% } else {

<b>N/A</b>
<br><% sprintf "%s = %.1f<br>%s = %.1f<br>S/N = %.1f", $det->filter, $det->mag, 'V', mopslib_filt2V($det->mag, $det->filter, $v2filt), $det->s2n %>

% }
</td>
% }
</tr></table>

<%args>
$size => 75
$dets
$short => 0
</%args>

<%init>
use Digest::MD5;
use Data::Dumper;
use PS::MOPS::Lib qw(mopslib_filt2V);

my $inst = $m->notes('INST');
my $mc = $inst->getConfig();
my $v2filt = $mc->{site}->{v2filt};

my $dbname = $inst->dbname;
my @stamps;
my $dfile;

foreach my $det (@{$dets}) {
    my $det_id = $det->detId;
    my $id = sprintf "%010d", $det_id;
    my $nn = int($det->epoch) - 1;  # TJD to MOPS nn
    my $dreldir = join('/', 'MD', split '', substr(uc(Digest::MD5::md5_hex($id)), 0, 5));
    my $creldir = join('/', 'MC', split '', substr(uc(Digest::MD5::md5_hex($id)), 0, 5));

    $dfile = $inst->getEnvironment('VARDIR') . "/stamps/$dreldir/MD-$id.fits";
    if (!-f $dfile) {
        my ($dir) = $det_id =~ /(\d)$/;
#        $dfile = "/home/mops/MOPS_VAR/$dbname/nn/$nn/stamps/$dir/D$det_id.fits";
        $dfile = "/data/mops13.0/stamp-store/stamps/special-stamps/$dbname-auto/$nn/$dir/D$det_id.fits";
        if (!-f $dfile) {
            $dfile = "/data/mops13.0/stamp-store/stamps/special-stamps/$dbname-auto/$nn/D$det_id.fits";
        }
    }
    my $have_dfile = -f $dfile;

    my $cfile = $inst->getEnvironment('VARDIR') . "/stamps/$nn/$det_id.fits";
    if (!-f $cfile) {
        $cfile = $inst->getEnvironment('VARDIR') . "/stamps/$creldir/MC-$id.fits";
    }
    my $have_cfile = -f $cfile;

    my ($dlast) = $det_id =~ /(\d)$/;
    my $jfile = "/data/mops12.0/denneau/det/$dlast/$det_id.jpg";
    undef($jfile) unless -e $jfile;

    if ($have_dfile) {
        push @stamps, { diff => $dfile, det => $det, jfile => $jfile };
    }
    elsif ($have_cfile) {
        push @stamps, { chip => $cfile, det => $det, jfile => $jfile };
    }
    else {
        push @stamps, { none => undef, foo => $cfile, det => $det, jfile => $jfile };
    }

}
</%init>
