Index: branches/LCSv2/views/default/submit.html
===================================================================
--- branches/LCSv2/views/default/submit.html	(revision 623)
+++ branches/LCSv2/views/default/submit.html	(revision 624)
@@ -64,4 +64,47 @@
     startloc.selectedIndex = "0";
     endloc.selectedIndex = "0";
+}
+/* When a supervisor is selected from the combobox, filter the
+   list of fieldrep (crew) for just those of that supervisor. 
+   Note: this function is a near duplicate of routechanged() */
+function supervisorchanged() {
+  var e = document.getElementById("supervisorcombo");
+  var currentSuper = e.options[e.selectedIndex].text;
+  // update the list of crew
+  removeOptions(document.getElementById("fieldrep"));
+  fillCrew(currentSuper);
+}
+/* Fill the FieldRep selectbox with items that match supervisor
+   I.e., have the same radio call number.
+   Note: this function is a near duplicate of fillOptions()  */
+function fillCrew(supervisor)
+{
+    var i;    
+    var tbl = document.getElementById("crewlookup");
+    var dropdown = document.getElementById("fieldrep")
+    var opt1;
+
+    // Examine all items in crew lookup table
+    for(i = tbl.options.length - 1 ; i >= 0 ; i--)
+    {
+        var item = tbl.options[i].text;
+        // Extract the call num from the lookup table item
+        var currentCallnum = item.substring(0,2);
+        // if the supervisor's call num matches crew call num 
+        var superCallnum = supervisor.substring(0,2)
+        if (currentCallnum.startsWith(superCallnum))
+        {
+            // Add an option to the fieldrep combo box
+            opt1 = document.createElement('option');
+            opt1.text = opt1.value = item;
+            dropdown.add(opt1,0);
+        }
+    }
+    // Add an empty option to the select box
+    opt1 = document.createElement('option');
+    opt1.text = opt1.value = '';
+    dropdown.add(opt1,0);
+    // Show the first (empty) option
+    dropdown.selectedIndex = "0";
 }
 </script>
Index: branches/LCSv2/controllers/default.py
===================================================================
--- branches/LCSv2/controllers/default.py	(revision 623)
+++ branches/LCSv2/controllers/default.py	(revision 624)
@@ -214,7 +214,9 @@
         supervisors.append(row.radiocallnum + ' ' + row.name)
     crew = ['']  # List of names for the dropdown box
+    crewlookup = []
     # Obtain all the crew names from the database
     for row in db().select(db.crew.ALL):
         crew.append(row.radiocallnum + ' ' + row.name)
+        crewlookup.append(row.radiocallnum + ' ' + row.name)
     # Build the list of street locations and a hidden cross street lookup table
     streets = ['']
@@ -263,6 +265,6 @@
             TD(LABEL('Field Rep'))
             ), 
-          TR(TD(SELECT(supervisors,_name='supervisor', requires=IS_LENGTH(minsize=1,error_message='supervisor cannot be empty'))),
-             TD(SELECT(crew,_name='fieldrep')),
+          TR(TD(SELECT(supervisors,_name='supervisor', _id='supervisorcombo', _onchange='supervisorchanged()', requires=IS_LENGTH(minsize=1,error_message='supervisor cannot be empty'))),
+             TD(SELECT(crew,_name='fieldrep',_id='fieldrep')),
              TD(XML("&nbsp;&nbsp;&nbsp;&nbsp;")),
              TD('Is this an existing incident?',
@@ -279,5 +281,6 @@
                   TR(TD(INPUT(_name='meeting', _size='25')),TD(INPUT(_name='reason',_size='25')),TD(INPUT(_name='remarks',_size='25'))) ), BR(), 
             INPUT(_type='submit',_value='Submit Closure', _class="btn btn-primary btn-default", _style="margin:  2% 45% 2% 40%;"),
-            XML('\n'),SELECT(streetlookup,_name='stlookup', _id='stlookup', _class='hideme')) 
+            XML('\n'),SELECT(streetlookup,_name='stlookup', _id='stlookup', _class='hideme'), 
+SELECT(crewlookup,_name='crewlookup', _id='crewlookup', _class='hideme')) 
 
     if form.process(onvalidation=validate_existing_id).accepted:
Index: branches/LCSv2/databases/sql.log
===================================================================
--- branches/LCSv2/databases/sql.log	(revision 623)
+++ branches/LCSv2/databases/sql.log	(revision 624)
@@ -48101,2 +48101,137 @@
 DELETE FROM sqlite_sequence WHERE name='crew'
 success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
+DELETE FROM "supervisors";
+DELETE FROM sqlite_sequence WHERE name='supervisors'
+success!
+DELETE FROM "streets";
+DELETE FROM sqlite_sequence WHERE name='streets'
+success!
+DELETE FROM "crew";
+DELETE FROM sqlite_sequence WHERE name='crew'
+success!
