Index: trunk/src/scriptbuilder/gui/IncidentEditorFrame.java
===================================================================
--- trunk/src/scriptbuilder/gui/IncidentEditorFrame.java	(revision 117)
+++ trunk/src/scriptbuilder/gui/IncidentEditorFrame.java	(revision 118)
@@ -51,4 +51,6 @@
 
     private int savedOffset;
+
+    private boolean addToEnd = true;
 
     /**
@@ -453,5 +455,5 @@
         scriptEventsList = new javax.swing.JList();
         zoomSlider = new javax.swing.JSlider();
-        scriptEventsPanel1 = new javax.swing.JPanel();
+        incidentInformationPanel = new javax.swing.JPanel();
         jLabel2 = new javax.swing.JLabel();
         jLabel3 = new javax.swing.JLabel();
@@ -485,7 +487,10 @@
         timeStampScrollPane = new javax.swing.JScrollPane();
         absoluteTimeStampPanel = new scriptbuilder.gui.panels.TimeStampPanel();
-        btnAddTime = new javax.swing.JButton();
         timeStampScrollPane1 = new javax.swing.JScrollPane();
         relativeTimeStampPanel = new scriptbuilder.gui.panels.TimeStampPanel();
+        addTimePanel = new javax.swing.JPanel();
+        btnAddTime = new javax.swing.JButton();
+        btnToggleTimeStart = new javax.swing.JRadioButton();
+        btnToggleTimeEnd = new javax.swing.JRadioButton();
 
         cadEvent.setText("CAD Event");
@@ -859,5 +864,5 @@
         });
 
-        scriptEventsPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Incident Information"));
+        incidentInformationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Incident Information"));
 
         jLabel2.setText("Incident Number:");
@@ -883,31 +888,31 @@
         incidentNumber.setText("100");
 
-        javax.swing.GroupLayout scriptEventsPanel1Layout = new javax.swing.GroupLayout(scriptEventsPanel1);
-        scriptEventsPanel1.setLayout(scriptEventsPanel1Layout);
-        scriptEventsPanel1Layout.setHorizontalGroup(
-            scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(scriptEventsPanel1Layout.createSequentialGroup()
+        javax.swing.GroupLayout incidentInformationPanelLayout = new javax.swing.GroupLayout(incidentInformationPanel);
+        incidentInformationPanel.setLayout(incidentInformationPanelLayout);
+        incidentInformationPanelLayout.setHorizontalGroup(
+            incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(incidentInformationPanelLayout.createSequentialGroup()
                 .addContainerGap()
-                .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                .addGroup(incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                     .addComponent(incidentDescriptionPane, javax.swing.GroupLayout.Alignment.TRAILING)
                     .addComponent(jLabel4)
-                    .addGroup(scriptEventsPanel1Layout.createSequentialGroup()
-                        .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(incidentInformationPanelLayout.createSequentialGroup()
+                        .addGroup(incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                             .addComponent(jLabel2)
                             .addComponent(jLabel3))
                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                        .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+                        .addGroup(incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                             .addComponent(incidentName)
                             .addComponent(incidentNumber))))
                 .addContainerGap())
         );
-        scriptEventsPanel1Layout.setVerticalGroup(
-            scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGroup(scriptEventsPanel1Layout.createSequentialGroup()
-                .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+        incidentInformationPanelLayout.setVerticalGroup(
+            incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(incidentInformationPanelLayout.createSequentialGroup()
+                .addGroup(incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                     .addComponent(jLabel2)
                     .addComponent(incidentNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                .addGroup(scriptEventsPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                .addGroup(incidentInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                     .addComponent(incidentName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                     .addComponent(jLabel3))
@@ -1295,5 +1300,5 @@
         absoluteTimeStampPanelLayout.setHorizontalGroup(
             absoluteTimeStampPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 1036, Short.MAX_VALUE)
+            .addGap(0, 1088, Short.MAX_VALUE)
         );
         absoluteTimeStampPanelLayout.setVerticalGroup(
@@ -1303,13 +1308,4 @@
 
         timeStampScrollPane.setViewportView(absoluteTimeStampPanel);
-
-        btnAddTime.setText("+15:00");
-        btnAddTime.addActionListener(new java.awt.event.ActionListener()
-        {
-            public void actionPerformed(java.awt.event.ActionEvent evt)
-            {
-                btnAddTimeActionPerformed(evt);
-            }
-        });
 
         timeStampScrollPane1.setBorder(null);
@@ -1321,5 +1317,5 @@
         relativeTimeStampPanelLayout.setHorizontalGroup(
             relativeTimeStampPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 1036, Short.MAX_VALUE)
+            .addGap(0, 1088, Short.MAX_VALUE)
         );
         relativeTimeStampPanelLayout.setVerticalGroup(
@@ -1329,4 +1325,54 @@
 
         timeStampScrollPane1.setViewportView(relativeTimeStampPanel);
+
+        btnAddTime.setText("+15:00");
+        btnAddTime.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnAddTimeActionPerformed(evt);
+            }
+        });
+
+        btnToggleTimeStart.setText("to Start");
+        btnToggleTimeStart.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnToggleTimeStartActionPerformed(evt);
+            }
+        });
+
+        btnToggleTimeEnd.setSelected(true);
+        btnToggleTimeEnd.setText("to End");
+        btnToggleTimeEnd.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnToggleTimeEndActionPerformed(evt);
+            }
+        });
+
+        javax.swing.GroupLayout addTimePanelLayout = new javax.swing.GroupLayout(addTimePanel);
+        addTimePanel.setLayout(addTimePanelLayout);
+        addTimePanelLayout.setHorizontalGroup(
+            addTimePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addComponent(btnAddTime, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
+            .addGroup(addTimePanelLayout.createSequentialGroup()
+                .addGroup(addTimePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(btnToggleTimeStart)
+                    .addComponent(btnToggleTimeEnd))
+                .addGap(0, 0, Short.MAX_VALUE))
+        );
+        addTimePanelLayout.setVerticalGroup(
+            addTimePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(addTimePanelLayout.createSequentialGroup()
+                .addComponent(btnAddTime, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(btnToggleTimeStart)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(btnToggleTimeEnd)
+                .addGap(0, 0, Short.MAX_VALUE))
+        );
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
@@ -1343,22 +1389,18 @@
                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                         .addComponent(evaluationEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                        .addGap(18, 18, 18)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                            .addGroup(layout.createSequentialGroup()
-                                .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-                                .addComponent(btnAddTime, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                            .addGroup(layout.createSequentialGroup()
-                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                                    .addComponent(zoomInIcon)
-                                    .addComponent(zoomOutIcon))
-                                .addGap(0, 0, Short.MAX_VALUE))))
+                            .addComponent(zoomInIcon)
+                            .addComponent(zoomOutIcon)
+                            .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(addTimePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                     .addComponent(timelinesScrollPane, 0, 0, Short.MAX_VALUE)
-                    .addComponent(timeStampScrollPane)
+                    .addComponent(timeStampScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-                        .addComponent(scriptEventsPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                        .addComponent(incidentInformationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                         .addComponent(scriptEventsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
-                    .addComponent(timeStampScrollPane1))
+                    .addComponent(timeStampScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                 .addContainerGap())
         );
@@ -1376,15 +1418,13 @@
                                 .addComponent(selectButton, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE))))
                     .addGroup(layout.createSequentialGroup()
+                        .addGap(9, 9, 9)
                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                             .addGroup(layout.createSequentialGroup()
-                                .addGap(9, 9, 9)
                                 .addComponent(zoomInIcon)
-                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                                .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
-                            .addGroup(layout.createSequentialGroup()
-                                .addGap(61, 61, 61)
-                                .addComponent(btnAddTime, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)))
-                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                        .addComponent(zoomOutIcon)))
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addComponent(zoomSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
+                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                                .addComponent(zoomOutIcon))
+                            .addComponent(addTimePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                 .addComponent(timeStampScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -1395,5 +1435,5 @@
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-                    .addComponent(scriptEventsPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(incidentInformationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                     .addComponent(scriptEventsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
@@ -1791,7 +1831,41 @@
     private void btnAddTimeActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnAddTimeActionPerformed
     {//GEN-HEADEREND:event_btnAddTimeActionPerformed
-        incidentTimelinePanel1.requestedEditorFillerTime += IncidentTimelinePanel.FILLER_INTERVAL_SECONDS;
+        if (addToEnd)
+        {
+            incidentTimelinePanel1.requestedEditorFillerTime += IncidentTimelinePanel.FILLER_INTERVAL_SECONDS;
+        }
+        else
+        {
+            if (savedOffset - IncidentTimelinePanel.FILLER_INTERVAL_SECONDS >= 0)
+            {
+                savedOffset -= IncidentTimelinePanel.FILLER_INTERVAL_SECONDS;
+                absoluteTimeStampPanel.setOffset(absoluteTimeStampPanel.offset
+                        - IncidentTimelinePanel.FILLER_INTERVAL_SECONDS);
+                theIncident.setOffset(theIncident.offset + IncidentTimelinePanel.FILLER_INTERVAL_SECONDS);
+            }
+            else
+            {
+                absoluteTimeStampPanel.setOffset(absoluteTimeStampPanel.offset
+                        - savedOffset);
+                theIncident.setOffset(theIncident.offset + savedOffset);
+                savedOffset = 0;
+            }
+        }
         this.update(null, theIncident);
     }//GEN-LAST:event_btnAddTimeActionPerformed
+
+    private void btnToggleTimeEndActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnToggleTimeEndActionPerformed
+    {//GEN-HEADEREND:event_btnToggleTimeEndActionPerformed
+        btnToggleTimeEnd.setSelected(true);
+        btnToggleTimeStart.setSelected(false);
+        addToEnd = true;
+    }//GEN-LAST:event_btnToggleTimeEndActionPerformed
+
+    private void btnToggleTimeStartActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnToggleTimeStartActionPerformed
+    {//GEN-HEADEREND:event_btnToggleTimeStartActionPerformed
+        btnToggleTimeStart.setSelected(true);
+        btnToggleTimeEnd.setSelected(false);
+        addToEnd = false;
+    }//GEN-LAST:event_btnToggleTimeStartActionPerformed
 
     /**
@@ -1833,4 +1907,5 @@
     private javax.swing.JButton activityLogEvalButton;
     private javax.swing.JFrame addNoiseFrame;
+    private javax.swing.JPanel addTimePanel;
     private javax.swing.JButton atmsEvalButton;
     private javax.swing.JButton audioButton;
@@ -1838,4 +1913,6 @@
     private javax.swing.JButton btnCancelNoise;
     private javax.swing.JButton btnGenerateNoise;
+    private javax.swing.JRadioButton btnToggleTimeEnd;
+    private javax.swing.JRadioButton btnToggleTimeStart;
     private javax.swing.JButton cadButton;
     private javax.swing.JButton cadEvalButton;
@@ -1855,4 +1932,5 @@
     private javax.swing.JScrollPane incidentDescriptionPane;
     private javax.swing.JPanel incidentEventsPanel;
+    private javax.swing.JPanel incidentInformationPanel;
     private javax.swing.JTextField incidentName;
     private javax.swing.JTextField incidentNumber;
@@ -1890,5 +1968,4 @@
     private javax.swing.JScrollPane scriptEventsPane;
     private javax.swing.JPanel scriptEventsPanel;
-    private javax.swing.JPanel scriptEventsPanel1;
     private javax.swing.JButton selectButton;
     private javax.swing.JSlider sliderBackgroundNoise;
