{
'events' : [
% foreach my $thing (@stuff) {
    {
        'start' : '<% $thing->{start} %>' ,
        'title' : '<% $thing->{title} %>',
        'icon' : '<% $thing->{icon} %>',
        'link' : '<% $thing->{link} %>', 
        'image' : '<% $thing->{image} %>',
        'description' : '<% $thing->{title} %> <% $thing->{description} %>'
    },
% }
]
}


<%args>
$id
</%args>

<%init>
my %idmap = qw(
    D Derivation
    A Attribution
    P Precovery
    I Identification
    R Removal
);

my %monfs = qw(
    1 Jan
    2 Feb
    3 Mar
    4 Apr
    5 May
    6 Jun
    7 Jul
    8 Aug
    9 Sep
    10 Oct
    11 Nov
    12 Dec
);

my $inst = $m->notes('INST');
my $model = $m->notes('MODEL');

use Astro::Time;
use PS::MOPS::Constants qw(:all);
use PS::MOPS::DC::Field;
use PS::MOPS::DC::Detection;
use PS::MOPS::DC::DerivedObject;
use PS::MOPS::DC::SSM;
use PS::MOPS::DC::History;
my $ssmId = modcs_objectName2ssmId($inst, $id);
my $events = modch_retrieve($inst, ssmId => $ssmId);

my @stuff;

# Raw detections for this ssm object.
my $det_i = modcd_retrieve($inst, objectName => $id);
my $det;
my $start_str;
my $title_str;
my $description;
my $ev;

while ($det = $det_i->next) {
    my ($day, $month, $year, $dayfrac) = mjd2cal($det->epoch);
    my ($sign, $hour, $minute, $sec) = time2hms($dayfrac, 'H',  2);

    $start_str = sprintf "%s %02d %4d %02d:%02d:%02d GMT", 
        $monfs{$month}, $day, $year, $hour, $minute, $sec;
    $title_str = "Detection";
    $description = $m->interp->apply_escapes(sprintf "%s<br>%.6f<br>RA=%.4f<br>DEC=%.4f<br>MAG=%.2f", 
        $start_str, $det->epoch, $det->ra, $det->dec, $det->mag);

#    my $url = $m->interp->apply_escapes(sprintf("/model/$model/detections?imgtype=png&field_id=%d", $det->fieldId), 'h');
#    my $url2 = $m->interp->apply_escapes(sprintf("/model/$model/detections?leetle=1&imgtype=png&field_id=%d", $det->fieldId), 'h');
    my $url = sprintf("/model/$model/detections?imgtype=png&field_id=%d", $det->fieldId);
    my $url2 = sprintf("/model/$model/detections?leetle=1&imgtype=png&field_id=%d", $det->fieldId);
    push @stuff, {
        start => $start_str,
        icon => '/images/blue-circle.png',
        title => 'Field ID ' . $det->fieldId,
        link => $url,
        image => $url2,
        description => $description,
    };
}

# History.
foreach $ev (sort { $a->eventTime <=> $b->eventTime } @{$events}) {

    my $field = modcf_retrieve($inst, fieldId => $ev->fieldId);
    my ($day, $month, $year, $dayfrac) = mjd2cal($field->epoch);
    my ($sign, $hour, $minute, $sec) = time2hms($dayfrac, 'H',  2);
    my $do;
    
    $start_str = sprintf "%s %02d %4d %02d:%02d:%02d GMT", $monfs{$month}, $day, $year, $hour, $minute, $sec;
    $description = sprintf 'Event ID', $ev->eventId;

    if ($ev->derivedobjectId) {
        $do = modcdo_retrieve($inst, derivedobjectId => $ev->derivedobjectId);
        $title_str = $idmap{$ev->eventType} . ' ' . $do->objectName;
    }
    else {
        $title_str = 'UNFOUND ' . $idmap{$ev->eventType};
    }

    my $thm;
    if ($ev->classification eq $MOPS_EFF_UNFOUND) {
        $thm = '/images/red-circle.png';
    }
    else {
        $thm = '/images/green-circle.png';
    }
    push @stuff, {
        start => $start_str,
        icon => $thm,
        link => sprintf("/model/$model/dohist.html?derivedobjectId=%d", $do->derivedobjectId),
        title => $title_str,
        description => $description,
    };
}


$r->content_type('text/javascript');
</%init>
