Index: /trunk/webapps/dynamicdata/caddetails.csv
===================================================================
--- /trunk/webapps/dynamicdata/caddetails.csv	(revision 551)
+++ /trunk/webapps/dynamicdata/caddetails.csv	(revision 551)
@@ -0,0 +1,115 @@
+00:01:00, CAD Log, Incident #187, Detail: STALLED DOT SB SR-55 AT I-405
+00:03:00, CAD Log, Incident #187, Detail: CELLULAR 911 RPT DOT HT  2ND VEH OVER THE SIDE  UNVERIFIED
+00:03:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:04:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:05:00, CAD Log, Incident #187, Detail: DOT HIT BY VEH  VEH OVER SIDE.2ND VEH LANDED NB 405 BELOW  LG COLLISION OCCUR. REQ 2 1141 CODE 2 UNITS ASSIST
+00:05:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:06:00, CAD Log, Incident #187, Detail: 14-17 14-9 ENRT ASSIST 1183 1125
+00:06:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:07:00, CAD Log, Incident #187, Detail: DOT DRIVER UNINJURED  #2 3 LNS BLCKD SB 55.14-14 MVNG TO 405 ASSESS DMG
+00:10:00, CAD Log, Incident #188, Detail: 9-9 ENRT FRM I405 @ IRVINE CTR
+00:12:00, CAD Log, Incident #187, Detail: 14-14 1097  MULTIPLE 1144 NB 405 AT 55 OVERPASS  6 VEH TCBLOCKING 3 INSIDE LNS NB 405. DRVR AND PSSNGR IN VEH 1144  2 OTHER FATALS  MULT INJR  REQ CRNR AND SIGALERT
+00:12:30, CAD Log, Incident #187, Detail: 1039 CRNR
+00:13:00, CAD Log, Incident #187, Detail: 14-17 1097  PARAMEDICS 1097. 1184 SB 55 FOR DOT 1125
+00:14:00, CAD Log, Incident #188, Detail: 9-9  FD  PARAMEDICS 1097.  TC SEMI W/TOMATOES AND VEH ON NB-5 #3 4 5 LNSTRCK ON FIRE  REQ CT CLNUP  UNITS 1184
+00:14:00, CAD Log, Incident #187, Detail: REQ MAIT  REQ 14-S UNIT  REQ TMT
+00:17:00, CAD Log, Incident #187, Detail: 14-9 1097  ASSIST 1184
+00:18:00, CAD Log, Incident #187, Detail: TRAFFIC BACKING SB 55 REQ TMT MEDIUM DUTY 1185
+00:19:00, CAD Log, Incident #187, Detail: 4 1144'S  2 1180'S  4 1181'S
+00:20:00, CAD Log, Incident #188, Detail: 9-15 9-19 ENRT FOR 1184
+00:21:00, CAD Log, Incident #187, Detail: 1039 SABLAN TOWING
+00:22:00, CAD Log, Incident #187, Detail: 14-S3 1097 NB 405 @ 55MAIT ETA 15
+00:24:00, CAD Log, Incident #188, Detail: 1141 1097  TRCK STLL FIRE  2 1180 IN VEH  UNK IN TRCK
+00:25:00, CAD Log, Incident #188, Detail: REQUEST 1185 BIG RIG AND 1185 ROT  ISSUE SIG ALERT
+00:27:00, CAD Log, Incident #187, Detail: CRNR 1097  INJURED TRANSPORTED
+00:30:00, CAD Log, Incident #188, Detail: 9-15 1097  ADVS PD TO DIRECT TRAFFIC OFF AT LAKE FOREST 
+00:31:00, CAD Log, Incident #188, Detail: 1039 COLLEGE OAK BIG RIG  CYCLE TOW FOR ROT
+00:32:00, CAD Log, Incident #188, Detail: 9-19 1097 ASSISTNG 1184
+00:35:00, CAD Log, Incident #187, Detail: MAIT 1097 STARTING INVESTIGATION SB SR55
+00:37:00, CAD Log, Incident #187, Detail: MED DUTY 1185 1097  AWAIT FINISH MAIT BEFORE TOW VEH
+00:38:00, CAD Log, Incident #188, Detail: 1039 PD  SENDING 2 UNITS ASST 1184
+00:40:00, CAD Log, Incident #187, Detail: CRNR CONFIRMED FOUR FATAL  PREP TO TRANSPORT
+00:42:00, CAD Log, Incident #188, Detail: 1180S TRANSPORTED
+00:43:00, CAD Log, Incident #188, Detail: 9-9 FIRE OUT
+00:44:00, CAD Log, Incident #188, Detail: LAKE FOREST ONRAMP CLOSED  DIRECTING TRAFFIC OFF LAKE FOREST OFFRAMP
+00:47:00, CAD Log, Incident #187, Detail: MAIT FINISHED W/ INVESTIGATION SB SR-55 AT I-405  PREP DOT TRCK FOR TOW
+00:48:00, CAD Log, Incident #188, Detail: 1 1144 IN TRCK  REQ CRNR
+00:50:00, CAD Log, Incident #188, Detail: 9-9 1039 CRNR  ETA 15
+00:51:00, CAD Log, Incident #188, Detail: CT 1097  STRTNG CLNUP OF TOMATOES
+00:53:00, CAD Log, Incident #188, Detail: 1185 ROT 1097
+00:54:00, CAD Log, Incident #187, Detail: MAIT STARTING INVESTIGATION NB 405 TO TAKE 30 MIN
+00:55:00, CAD Log, Incident #187, Detail: CLNUP NRLY FNSHD DOT RDY TO BE TWD  SB SR-55 LNS OPN IN 5
+00:56:00, CAD Log, Incident #188, Detail: WTNSSES  JOHN/BETTY JONES SAW TOMATO TRUCK LOSE CONTROL  FLIP OVER  VEH HIT  TRCK IMM CAUGHT FIRE
+00:59:00, CAD Log, Incident #188, Detail: BIG RIG 1185 1097
+01:02:00, CAD Log, Incident #187, Detail: 14-17 1097 DOT TRCK TWD  SB SR-55 OPN
+01:03:00, CAD Log, Incident #187, Detail: MAIT PARTIAL CMPLT  PICS TKN  NEED MSRMNTS  INTERVIEWS
+01:05:00, CAD Log, Incident #188, Detail: CT #3 LN ALMOST CLEARED OF TOMATOES
+01:07:00, CAD Log, Incident #188, Detail: CRNR 1097
+01:08:00, CAD Log, Incident #187, Detail: REQ 6 ROT 1185
+01:09:00, CAD Log, Incident #188, Detail: VEH TOWED  #3 LN CLEARED  OPENING
+01:10:00, CAD Log, Incident #187, Detail: MAIT NEARLY COMPLETE  FINISHING INTERVIEWS  TOW ETA 10
+01:12:00, CAD Log, Incident #188, Detail: 1144 CNFRMD  #3 LN OPN  FULL OPNNG 20 MIN
+01:15:00, CAD Log, Incident #188, Detail: CT NRLY FNSHD CLNUP  TRCK BEING PRPRD FOR 1185
+01:16:30, CAD Log, Incident #187, Detail: MAIT FINISHED INVESTIGATION 1098  START CLEANUP WHEN 1185S ARRIVE
+01:19:00, CAD Log, Incident #187, Detail: 1185 1097 PARTIAL OPENING IN 15
+01:20:00, CAD Log, Incident #188, Detail: CT 98 TOMATOES  LNS OPN IN 10
+01:23:00, CAD Log, Incident #189, Detail: CELLULAR 911 RPT SUICIDE BMBR AT I-405 @ JEFFREY  UNVERIFIED1039 IRV PD  PD ENRT  28-24 ENRT FROM I-405 @ IRVINE CNTR.
+01:24:00, CAD Log, Incident #188, Detail: TRCK TWD  FD SPRYNG LNS  LNS OPN IN 5
+01:25:00, CAD Log, Incident #189, Detail: 28-24 1097  PD 1097
+01:29:00, CAD Log, Incident #189, Detail: 28-19 ENRT FROM I-5 AT SND CYN  28-13 ENRT FROM I-5 AT 133SHUT DWN NB I-405 AT SND CYN OFFR
+01:30:00, CAD Log, Incident #187, Detail: OPN #2 3 LNS  FULL OPN IN 5
+01:31:00, CAD Log, Incident #188, Detail: ALL LNS CLR  9-15 OPENING LAKE FOREST ONRAMP9-9 9-15 9-19 1098
+01:31:00, CAD Log, Incident #189, Detail: 28-11 ENRT FROM I405 AT BRISTOL  28-07 ENRT FROM SR55 AT DYER28-11 28-07 TO SHT DWN SB I405 AT CULVER OFFR
+01:32:00, CAD Log, Incident #189, Detail: PD CLOSING JEFFREY AND UNIV DR  SENDING NEGOTIATOR  REQ SIGALERT
+01:35:00, CAD Log, Incident #187, Detail: VEH TWD  LNS OPN  14-S  14-9  14-14 1098
+01:36:00, CAD Log, Incident #189, Detail: 28-13 1097  10-23 28-19 B4 CLOSING NB LNS  1039 DOT FOR SIGN TRUCKS
+01:37:00, CAD Log, Incident #189, Detail: 28-11 1097  CLSNG DWN SB LNS AT CULVER DR OFFR
+01:38:00, CAD Log, Incident #189, Detail: 28-13  28-19 SHUTTING DWN NB 405 LNS AT SAND CYN ST OFFR
+01:40:00, CAD Log, Incident #189, Detail: 28-07 1097 ASSTNG 28-11 CLSNG SB LNS AT CULVER OFFR
+01:41:00, CAD Log, Incident #189, Detail: 28-S4 1097 I5 JEFFREY AVE ASSIST
+01:43:00, CAD Log, Incident #189, Detail: PD STTNG DETOURS  SB TRFFC OFF AT CULVER AVE  NB TRFFC OFF AT SAND CYN
+01:44:00, CAD Log, Incident #189, Detail: NEGOTIATOR 1097
+01:45:00, CAD Log, Incident #189, Detail: NB LNS SHUT DOWN
+01:46:00, CAD Log, Incident #189, Detail: SUSP WON'T ALLOW NEGOTIATOR NEAR HIM
+01:47:00, CAD Log, Incident #189, Detail: 28-07 SB LNS SHUT DOWN
+01:50:00, CAD Log, Incident #189, Detail: SUSP IS CALMING DOWN.  BOMB SQD 1097
+01:53:00, CAD Log, Incident #190, Detail: 9-22 ENRT FROM 57 @ CHAPMAN
+01:58:00, CAD Log, Incident #190, Detail: 9-22 1097 2 VEH TC  VEH VS TANKER TRK  BLKNG #3 4UNID LIQUID LEAKING FROM TNKR  NEED TO CLOSE NB LANES  REQ UNITS
+01:59:00, CAD Log, Incident #190, Detail: 9-23  9-26 ENRT TO ASSIST 9-22
+02:00:00, CAD Log, Incident #190, Detail: 1141  FD 1097  TRCK DRVR 1180 UNCONCIOUS  2 1181S  LIQUID LEAKING INTO #2 LN. #2 3 4 BLKD AT THIS TIME
+02:01:00, CAD Log, Incident #189, Detail: NEGOTIATOR MAKING PROGRESS  SUSP MAY SURRENDER
+02:01:00, CAD Log, Incident #190, Detail: DONT HAVE TO SHUT THE FWY  LIQUID ID'D AS MILK.  #1 LN WILL REMAIN OPEN.ATTEMPTING TO CONTROL THE LEAK. REQ BIG RIG AND ROT 1185
+02:04:00, CAD Log, Incident #190, Detail: 9-23 1097  REQ TMT  TRAFFIC BACKING
+02:06:00, CAD Log, Incident #189, Detail: MAN TRIED TO DETONATE THE DEVICE  BOMB DIDNT ACTIVATE  PD APPRHNDNG
+02:08:00, CAD Log, Incident #189, Detail: SUSP IN CUSTODY  BOMB SQD INSPECTING BOMB
+02:11:00, CAD Log, Incident #190, Detail: PREPARING TO TRANSPORT VICTIMS  #1 LN OPN
+02:13:00, CAD Log, Incident #190, Detail: 9-26 1097 VICTIMS TRANSPORTED
+02:14:00, CAD Log, Incident #189, Detail: CODE A  BOMB DEFUSED  LNS BEING OPENED
+02:15:00, CAD Log, Incident #190, Detail: HOLE IN TANKER PLUGGED  FD WASHING DOWN RDWY
+02:16:00, CAD Log, Incident #189, Detail: SB LNS OPN 28-11 28-07 1098
+02:17:00, CAD Log, Incident #191, Detail: 911 CELLULAR CALL  RV FIRE SB-73 AT BEAR St  UNVERIFIED
+02:17:00, CAD Log, Incident #189, Detail: NB LNS OPN 28-13 28-19 1098
+02:18:00, CAD Log, Incident #189, Detail: 28-24  28-S4 1098 PD OPNNG OVRPASS
+02:19:00, CAD Log, Incident #191, Detail: 17-14 ENRT FROM 405 AT EUCLID
+02:20:00, CAD Log, Incident #190, Detail: 1185 ROT 1097
+02:21:00, CAD Log, Incident #190, Detail: BIG RIG 1185 1097  ONCE FD IS DONE  WILL START CLEANUP
+02:23:00, CAD Log, Incident #190, Detail: FD DONE  OPENING #2  STARTING CLEANUP
+02:24:00, CAD Log, Incident #191, Detail: RV ON FIRE ON RS  2 1181S  PARAMEDICS 1097  REQ UNIT TO ASSIST
+02:25:00, CAD Log, Incident #191, Detail: 17-16 ENRT FROM S-405 @ EUCLID TO ASSIST 17-14
+02:26:00, CAD Log, Incident #191, Detail: FD 1097  CLOSING RT LN  REQ TMT  TRAFFIC ADVISORY
+02:27:00, CAD Log, Incident #190, Detail: #2 LN OPN  FULL CLNUP IN 20
+02:29:00, CAD Log, Incident #191, Detail: 17-14 1097
+02:32:00, CAD Log, Incident #190, Detail: VEH READY TO BE TOWED  TRCK AND TNKR BEING UPRIGHTED
+02:33:00, CAD Log, Incident #191, Detail: VICTIMS TRANSPORTED  PASSERS BY RESCUED VICTIMS
+02:35:00, CAD Log, Incident #191, Detail: FIRE IS OUT  FD INVESTIGATING CAUSE OF FIRE
+02:37:00, CAD Log, Incident #190, Detail: VEH TOWED  TNKR UPRGHT  FULL OPENING IN 10
+02:39:00, CAD Log, Incident #191, Detail: REQ FLAT BED 1185  FD 98 IN 15
+02:41:00, CAD Log, Incident #191, Detail: 1039 1185 ENRT  ETA 10
+02:42:00, CAD Log, Incident #190, Detail: TANKER READY FOR TOW  FINISHING CLEANUP
+02:46:00, CAD Log, Incident #190, Detail: TANKER TOWED  RDWY CLR  OPENING LANES
+02:48:00, CAD Log, Incident #191, Detail: 1185 1097  INVESTIGATION NEARLY COMPLETE
+02:49:00, CAD Log, Incident #190, Detail: LNS OPN  9-22  9-23  9-26 10-98
+02:51:00, CAD Log, Incident #191, Detail: FD INVESTIGATION COMPLETE  SPRAYING RS  FIRE CAUSED BY KITCHEN FIRE
+02:54:00, CAD Log, Incident #191, Detail: RV READY FOR 1185  LN OPN IN 10
+02:58:00, CAD Log, Incident #191, Detail: RV TOWED  LANES OPEN IN 5
+03:01:00, CAD Log, Incident #191, Detail: 17-14  17-16 1098. LN OPN
Index: /trunk/webapps/dynamicdata/unifiedlog_final.csv
===================================================================
--- /trunk/webapps/dynamicdata/unifiedlog_final.csv	(revision 551)
+++ /trunk/webapps/dynamicdata/unifiedlog_final.csv	(revision 551)
@@ -0,0 +1,134 @@
+00:01:00, CAD Log, Incident #187, Detail: STALLED DOT SB SR-55 AT I-405
+00:01:18, Activity Log,,021 10-98 Assignment Completed 75-1
+00:01:18, Activity Log,,021 10-98 Let's get pizza. 75-1
+00:01:18, Activity Log,Bailey Mary,001  Incident Created
+00:01:18, Activity Log,Gross Angelo,001  32-1 Vehicle Disabled S 55@ 405 1308 hours
+00:01:18, Activity Log,Gross Angelo,001  HCC NOTIFIED
+00:01:18, Activity Log,Ha Khanh Duy,001  Per 32-1 NB rte 405 blocked
+00:01:18, Activity Log,Hockaday Neil,002  Incident Created
+00:01:18, Activity Log,Quan Ally,002  Incident Created
+00:01:18, CAD Log, Incident #187, Jose Trainee: HELLO TMC WORLD
+00:01:18, CAD Log, Simulation Started at 26 Dec 2019 16:40:07 with incidents 100 187 188 189 190 191
+00:01:18, CMS Activated,N I-405 15.18 MAGNOLIA ST, 'SLOW FOR THE::CONE ZONE:ROAD WORK:AHEAD:'
+00:01:18, CMS Activated,N SR-55  5.38 Baker Street, 'BBBBB:::::'
+00:01:53, CMS Activated,N SR-73 24.91 North of Jamboree, 'LINES ON ROAD:::::'
+00:02:00, Evaluation, ATMS, Average
+00:02:00, Evaluation, CAD, Best
+00:02:28, CMS Updated, N SR-73 24.91 North of Jamboree, 'SNOW ON ROAD:::::'
+00:03:00, CAD Log, Incident #187, Detail: CELLULAR 911 RPT DOT HT  2ND VEH OVER THE SIDE  UNVERIFIED
+00:03:13, CAD Log, Incident #187, Jose Trainee: SEND ICE CREAM
+00:03:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:03:33, CMS Deactivated, N SR-73 24.91 North of Jamboree
+00:04:04, CAD Log, Simulation Paused.
+00:04:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:05:00, CAD Log, Incident #187, Detail: DOT HIT BY VEH  VEH OVER SIDE.2ND VEH LANDED NB 405 BELOW  LG COLLISION OCCUR. REQ 2 1141 CODE 2 UNITS ASSIST
+00:05:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:06:00, CAD Log, Incident #187, Detail: 14-17 14-9 ENRT ASSIST 1183 1125
+00:06:30, CAD Log, Incident #187, Detail: DUPLICATE CALL
+00:07:00, CAD Log, Incident #187, Detail: DOT DRIVER UNINJURED  #2 3 LNS BLCKD SB 55.14-14 MVNG TO 405 ASSESS DMG
+00:10:00, CAD Log, Incident #188, Detail: 9-9 ENRT FRM I405 @ IRVINE CTR
+00:12:00, CAD Log, Incident #187, Detail: 14-14 1097  MULTIPLE 1144 NB 405 AT 55 OVERPASS  6 VEH TCBLOCKING 3 INSIDE LNS NB 405. DRVR AND PSSNGR IN VEH 1144  2 OTHER FATALS  MULT INJR  REQ CRNR AND SIGALERT
+00:12:30, CAD Log, Incident #187, Detail: 1039 CRNR
+00:13:00, CAD Log, Incident #187, Detail: 14-17 1097  PARAMEDICS 1097. 1184 SB 55 FOR DOT 1125
+00:14:00, CAD Log, Incident #187, Detail: REQ MAIT  REQ 14-S UNIT  REQ TMT
+00:14:00, CAD Log, Incident #188, Detail: 9-9  FD  PARAMEDICS 1097.  TC SEMI W/TOMATOES AND VEH ON NB-5 #3 4 5 LNSTRCK ON FIRE  REQ CT CLNUP  UNITS 1184
+00:17:00, CAD Log, Incident #187, Detail: 14-9 1097  ASSIST 1184
+00:18:00, CAD Log, Incident #187, Detail: TRAFFIC BACKING SB 55 REQ TMT MEDIUM DUTY 1185
+00:19:00, CAD Log, Incident #187, Detail: 4 1144'S  2 1180'S  4 1181'S
+00:20:00, CAD Log, Incident #188, Detail: 9-15 9-19 ENRT FOR 1184
+00:21:00, CAD Log, Incident #187, Detail: 1039 SABLAN TOWING
+00:22:00, CAD Log, Incident #187, Detail: 14-S3 1097 NB 405 @ 55MAIT ETA 15
+00:24:00, CAD Log, Incident #188, Detail: 1141 1097  TRCK STLL FIRE  2 1180 IN VEH  UNK IN TRCK
+00:25:00, CAD Log, Incident #188, Detail: REQUEST 1185 BIG RIG AND 1185 ROT  ISSUE SIG ALERT
+00:27:00, CAD Log, Incident #187, Detail: CRNR 1097  INJURED TRANSPORTED
+00:30:00, CAD Log, Incident #188, Detail: 9-15 1097  ADVS PD TO DIRECT TRAFFIC OFF AT LAKE FOREST 
+00:31:00, CAD Log, Incident #188, Detail: 1039 COLLEGE OAK BIG RIG  CYCLE TOW FOR ROT
+00:32:00, CAD Log, Incident #188, Detail: 9-19 1097 ASSISTNG 1184
+00:35:00, CAD Log, Incident #187, Detail: MAIT 1097 STARTING INVESTIGATION SB SR55
+00:37:00, CAD Log, Incident #187, Detail: MED DUTY 1185 1097  AWAIT FINISH MAIT BEFORE TOW VEH
+00:38:00, CAD Log, Incident #188, Detail: 1039 PD  SENDING 2 UNITS ASST 1184
+00:40:00, CAD Log, Incident #187, Detail: CRNR CONFIRMED FOUR FATAL  PREP TO TRANSPORT
+00:42:00, CAD Log, Incident #188, Detail: 1180S TRANSPORTED
+00:43:00, CAD Log, Incident #188, Detail: 9-9 FIRE OUT
+00:44:00, CAD Log, Incident #188, Detail: LAKE FOREST ONRAMP CLOSED  DIRECTING TRAFFIC OFF LAKE FOREST OFFRAMP
+00:47:00, CAD Log, Incident #187, Detail: MAIT FINISHED W/ INVESTIGATION SB SR-55 AT I-405  PREP DOT TRCK FOR TOW
+00:48:00, CAD Log, Incident #188, Detail: 1 1144 IN TRCK  REQ CRNR
+00:50:00, CAD Log, Incident #188, Detail: 9-9 1039 CRNR  ETA 15
+00:51:00, CAD Log, Incident #188, Detail: CT 1097  STRTNG CLNUP OF TOMATOES
+00:53:00, CAD Log, Incident #188, Detail: 1185 ROT 1097
+00:54:00, CAD Log, Incident #187, Detail: MAIT STARTING INVESTIGATION NB 405 TO TAKE 30 MIN
+00:55:00, CAD Log, Incident #187, Detail: CLNUP NRLY FNSHD DOT RDY TO BE TWD  SB SR-55 LNS OPN IN 5
+00:56:00, CAD Log, Incident #188, Detail: WTNSSES  JOHN/BETTY JONES SAW TOMATO TRUCK LOSE CONTROL  FLIP OVER  VEH HIT  TRCK IMM CAUGHT FIRE
+00:59:00, CAD Log, Incident #188, Detail: BIG RIG 1185 1097
+01:02:00, CAD Log, Incident #187, Detail: 14-17 1097 DOT TRCK TWD  SB SR-55 OPN
+01:03:00, CAD Log, Incident #187, Detail: MAIT PARTIAL CMPLT  PICS TKN  NEED MSRMNTS  INTERVIEWS
+01:05:00, CAD Log, Incident #188, Detail: CT #3 LN ALMOST CLEARED OF TOMATOES
+01:07:00, CAD Log, Incident #188, Detail: CRNR 1097
+01:08:00, CAD Log, Incident #187, Detail: REQ 6 ROT 1185
+01:09:00, CAD Log, Incident #188, Detail: VEH TOWED  #3 LN CLEARED  OPENING
+01:10:00, CAD Log, Incident #187, Detail: MAIT NEARLY COMPLETE  FINISHING INTERVIEWS  TOW ETA 10
+01:12:00, CAD Log, Incident #188, Detail: 1144 CNFRMD  #3 LN OPN  FULL OPNNG 20 MIN
+01:15:00, CAD Log, Incident #188, Detail: CT NRLY FNSHD CLNUP  TRCK BEING PRPRD FOR 1185
+01:16:30, CAD Log, Incident #187, Detail: MAIT FINISHED INVESTIGATION 1098  START CLEANUP WHEN 1185S ARRIVE
+01:19:00, CAD Log, Incident #187, Detail: 1185 1097 PARTIAL OPENING IN 15
+01:20:00, CAD Log, Incident #188, Detail: CT 98 TOMATOES  LNS OPN IN 10
+01:23:00, CAD Log, Incident #189, Detail: CELLULAR 911 RPT SUICIDE BMBR AT I-405 @ JEFFREY  UNVERIFIED1039 IRV PD  PD ENRT  28-24 ENRT FROM I-405 @ IRVINE CNTR.
+01:24:00, CAD Log, Incident #188, Detail: TRCK TWD  FD SPRYNG LNS  LNS OPN IN 5
+01:25:00, CAD Log, Incident #189, Detail: 28-24 1097  PD 1097
+01:29:00, CAD Log, Incident #189, Detail: 28-19 ENRT FROM I-5 AT SND CYN  28-13 ENRT FROM I-5 AT 133SHUT DWN NB I-405 AT SND CYN OFFR
+01:30:00, CAD Log, Incident #187, Detail: OPN #2 3 LNS  FULL OPN IN 5
+01:31:00, CAD Log, Incident #188, Detail: ALL LNS CLR  9-15 OPENING LAKE FOREST ONRAMP9-9 9-15 9-19 1098
+01:31:00, CAD Log, Incident #189, Detail: 28-11 ENRT FROM I405 AT BRISTOL  28-07 ENRT FROM SR55 AT DYER28-11 28-07 TO SHT DWN SB I405 AT CULVER OFFR
+01:32:00, CAD Log, Incident #189, Detail: PD CLOSING JEFFREY AND UNIV DR  SENDING NEGOTIATOR  REQ SIGALERT
+01:35:00, CAD Log, Incident #187, Detail: VEH TWD  LNS OPN  14-S  14-9  14-14 1098
+01:36:00, CAD Log, Incident #189, Detail: 28-13 1097  10-23 28-19 B4 CLOSING NB LNS  1039 DOT FOR SIGN TRUCKS
+01:37:00, CAD Log, Incident #189, Detail: 28-11 1097  CLSNG DWN SB LNS AT CULVER DR OFFR
+01:38:00, CAD Log, Incident #189, Detail: 28-13  28-19 SHUTTING DWN NB 405 LNS AT SAND CYN ST OFFR
+01:40:00, CAD Log, Incident #189, Detail: 28-07 1097 ASSTNG 28-11 CLSNG SB LNS AT CULVER OFFR
+01:41:00, CAD Log, Incident #189, Detail: 28-S4 1097 I5 JEFFREY AVE ASSIST
+01:43:00, CAD Log, Incident #189, Detail: PD STTNG DETOURS  SB TRFFC OFF AT CULVER AVE  NB TRFFC OFF AT SAND CYN
+01:44:00, CAD Log, Incident #189, Detail: NEGOTIATOR 1097
+01:45:00, CAD Log, Incident #189, Detail: NB LNS SHUT DOWN
+01:46:00, CAD Log, Incident #189, Detail: SUSP WON'T ALLOW NEGOTIATOR NEAR HIM
+01:47:00, CAD Log, Incident #189, Detail: 28-07 SB LNS SHUT DOWN
+01:50:00, CAD Log, Incident #189, Detail: SUSP IS CALMING DOWN.  BOMB SQD 1097
+01:53:00, CAD Log, Incident #190, Detail: 9-22 ENRT FROM 57 @ CHAPMAN
+01:58:00, CAD Log, Incident #190, Detail: 9-22 1097 2 VEH TC  VEH VS TANKER TRK  BLKNG #3 4UNID LIQUID LEAKING FROM TNKR  NEED TO CLOSE NB LANES  REQ UNITS
+01:59:00, CAD Log, Incident #190, Detail: 9-23  9-26 ENRT TO ASSIST 9-22
+02:00:00, CAD Log, Incident #190, Detail: 1141  FD 1097  TRCK DRVR 1180 UNCONCIOUS  2 1181S  LIQUID LEAKING INTO #2 LN. #2 3 4 BLKD AT THIS TIME
+02:01:00, CAD Log, Incident #189, Detail: NEGOTIATOR MAKING PROGRESS  SUSP MAY SURRENDER
+02:01:00, CAD Log, Incident #190, Detail: DONT HAVE TO SHUT THE FWY  LIQUID ID'D AS MILK.  #1 LN WILL REMAIN OPEN.ATTEMPTING TO CONTROL THE LEAK. REQ BIG RIG AND ROT 1185
+02:04:00, CAD Log, Incident #190, Detail: 9-23 1097  REQ TMT  TRAFFIC BACKING
+02:06:00, CAD Log, Incident #189, Detail: MAN TRIED TO DETONATE THE DEVICE  BOMB DIDNT ACTIVATE  PD APPRHNDNG
+02:08:00, CAD Log, Incident #189, Detail: SUSP IN CUSTODY  BOMB SQD INSPECTING BOMB
+02:11:00, CAD Log, Incident #190, Detail: PREPARING TO TRANSPORT VICTIMS  #1 LN OPN
+02:13:00, CAD Log, Incident #190, Detail: 9-26 1097 VICTIMS TRANSPORTED
+02:14:00, CAD Log, Incident #189, Detail: CODE A  BOMB DEFUSED  LNS BEING OPENED
+02:15:00, CAD Log, Incident #190, Detail: HOLE IN TANKER PLUGGED  FD WASHING DOWN RDWY
+02:16:00, CAD Log, Incident #189, Detail: SB LNS OPN 28-11 28-07 1098
+02:17:00, CAD Log, Incident #189, Detail: NB LNS OPN 28-13 28-19 1098
+02:17:00, CAD Log, Incident #191, Detail: 911 CELLULAR CALL  RV FIRE SB-73 AT BEAR St  UNVERIFIED
+02:18:00, CAD Log, Incident #189, Detail: 28-24  28-S4 1098 PD OPNNG OVRPASS
+02:19:00, CAD Log, Incident #191, Detail: 17-14 ENRT FROM 405 AT EUCLID
+02:20:00, CAD Log, Incident #190, Detail: 1185 ROT 1097
+02:21:00, CAD Log, Incident #190, Detail: BIG RIG 1185 1097  ONCE FD IS DONE  WILL START CLEANUP
+02:23:00, CAD Log, Incident #190, Detail: FD DONE  OPENING #2  STARTING CLEANUP
+02:24:00, CAD Log, Incident #191, Detail: RV ON FIRE ON RS  2 1181S  PARAMEDICS 1097  REQ UNIT TO ASSIST
+02:25:00, CAD Log, Incident #191, Detail: 17-16 ENRT FROM S-405 @ EUCLID TO ASSIST 17-14
+02:26:00, CAD Log, Incident #191, Detail: FD 1097  CLOSING RT LN  REQ TMT  TRAFFIC ADVISORY
+02:27:00, CAD Log, Incident #190, Detail: #2 LN OPN  FULL CLNUP IN 20
+02:29:00, CAD Log, Incident #191, Detail: 17-14 1097
+02:32:00, CAD Log, Incident #190, Detail: VEH READY TO BE TOWED  TRCK AND TNKR BEING UPRIGHTED
+02:33:00, CAD Log, Incident #191, Detail: VICTIMS TRANSPORTED  PASSERS BY RESCUED VICTIMS
+02:35:00, CAD Log, Incident #191, Detail: FIRE IS OUT  FD INVESTIGATING CAUSE OF FIRE
+02:37:00, CAD Log, Incident #190, Detail: VEH TOWED  TNKR UPRGHT  FULL OPENING IN 10
+02:39:00, CAD Log, Incident #191, Detail: REQ FLAT BED 1185  FD 98 IN 15
+02:41:00, CAD Log, Incident #191, Detail: 1039 1185 ENRT  ETA 10
+02:42:00, CAD Log, Incident #190, Detail: TANKER READY FOR TOW  FINISHING CLEANUP
+02:46:00, CAD Log, Incident #190, Detail: TANKER TOWED  RDWY CLR  OPENING LANES
+02:48:00, CAD Log, Incident #191, Detail: 1185 1097  INVESTIGATION NEARLY COMPLETE
+02:49:00, CAD Log, Incident #190, Detail: LNS OPN  9-22  9-23  9-26 10-98
+02:51:00, CAD Log, Incident #191, Detail: FD INVESTIGATION COMPLETE  SPRAYING RS  FIRE CAUSED BY KITCHEN FIRE
+02:54:00, CAD Log, Incident #191, Detail: RV READY FOR 1185  LN OPN IN 10
+02:58:00, CAD Log, Incident #191, Detail: RV TOWED  LANES OPEN IN 5
+03:01:00, CAD Log, Incident #191, Detail: 17-14  17-16 1098. LN OPN
Index: /trunk/webapps/dynamicdata/har_messages.json
===================================================================
--- /trunk/webapps/dynamicdata/har_messages.json	(revision 463)
+++ /trunk/webapps/dynamicdata/har_messages.json	(revision 551)
@@ -1,4 +1,4 @@
 {"data":[
 {"har":{"index":"WPMW407 1620 AM","message":{"displayTime":"","phase1":{"Line1":"GOOD NIGHT"}}}},
-{"har":{"index":"KNNN868 1620 AM","message":{"displayTime":"","phase1":{"Line1":"HELLO WORLD"}}}}
+{"har":{"index":"KNNN868 1620 AM","message":{"displayTime":"","phase1":{"Line1":"SAMPLE HAR MESSAGE"}}}}
 ]}
Index: /trunk/webapps/dynamicdata/highway_status.json
===================================================================
--- /trunk/webapps/dynamicdata/highway_status.json	(revision 547)
+++ /trunk/webapps/dynamicdata/highway_status.json	(revision 551)
@@ -4755,5 +4755,5 @@
        },
    "properties": 
-       {"street": "MACARTHU1", "color": "lime", "perpx": "-0.710326", "perpy": "0.703873"}
+       {"street": "MACARTHU1", "color": "red", "perpx": "-0.710326", "perpy": "0.703873"}
 },  
 {
@@ -4766,5 +4766,5 @@
        },
    "properties": 
-       {"street": "MACARTHU2", "color": "lime", "perpx": "-0.710326", "perpy": "0.703873"}
+       {"street": "MACARTHU2", "color": "red", "perpx": "-0.710326", "perpy": "0.703873"}
 },  
 {
@@ -4777,5 +4777,5 @@
        },
    "properties": 
-       {"street": "DYER 1", "color": "lime", "perpx": "0", "perpy": "0"}
+       {"street": "DYER 1", "color": "red", "perpx": "0", "perpy": "0"}
 },  
 {
@@ -12046,5 +12046,5 @@
        },
    "properties": 
-       {"street": "AIRPORT", "color": "lime", "perpx": "0.321527", "perpy": "0.9469"}
+       {"street": "AIRPORT", "color": "yellow", "perpx": "0.321527", "perpy": "0.9469"}
 },  
 {
@@ -12057,5 +12057,5 @@
        },
    "properties": 
-       {"street": "HOV AT 55N FLYOVER**", "color": "lime", "perpx": "0.271933", "perpy": "0.962316"}
+       {"street": "HOV AT 55N FLYOVER**", "color": "yellow", "perpx": "0.271933", "perpy": "0.962316"}
 },  
 {
@@ -12068,5 +12068,5 @@
        },
    "properties": 
-       {"street": "RED HILL", "color": "lime", "perpx": "0.126754", "perpy": "0.991934"}
+       {"street": "RED HILL", "color": "yellow", "perpx": "0.126754", "perpy": "0.991934"}
 },  
 {
Index: /trunk/webapps/dynamicdata/CADcomments.log
===================================================================
--- /trunk/webapps/dynamicdata/CADcomments.log	(revision 547)
+++ /trunk/webapps/dynamicdata/CADcomments.log	(revision 551)
@@ -1,1 +1,4 @@
-CAD log, Simulation Started at 7 Dec 2019 09:20:08 with incidents 100 187 188 189 190 191 
+CAD Log, Simulation Started at 26 Dec 2019 16:40:07 with incidents 100 187 188 189 190 191 
+CAD Log, Incident #187, Jose Trainee: HELLO TMC WORLD
+CAD Log, Incident #187, Jose Trainee: SEND ICE CREAM
+CAD Log, Simulation Paused.
Index: /trunk/webapps/dynamicdata/unifiedlog.csv
===================================================================
--- /trunk/webapps/dynamicdata/unifiedlog.csv	(revision 547)
+++ /trunk/webapps/dynamicdata/unifiedlog.csv	(revision 551)
@@ -1,19 +1,17 @@
-0:01:17, CMS Activated.,N SR-55  5.38 Baker Street, 'BBBBB:::::'
-0:01:17, CMS Activated.,N I-405 15.18 MAGNOLIA ST, 'SLOW FOR THE::CONE ZONE:ROAD WORK:AHEAD:'
-0:01:17, CMS Activated.,S I-405 12.04 NEW HAMPSHIRE, 'AAAAAA:::::'
-0:01:17, CAD log, Simulation Started,  loaded incidents 100 187 188 189 190 191
-0:01:17, Activity Log.,Ha Khanh Duy,001  Per 32-1 NB rte 405 blocked
-0:01:17, Activity Log.,Gross Angelo,001  HCC NOTIFIED
-0:01:17, Activity Log.,Gross Angelo,001  32-1 Vehicle Disabled S 55@ 405 1308 hours
-0:01:17, Activity Log.,,021 10-98 Assignment Completed 75-1
-0:01:17, Activity Log.,,021 10-98 Let's get pizza. 75-1
-0:01:17, Activity Log.,Bailey Mary,001  Incident Created
-0:01:17, Activity Log.,Hockaday Neil,002  Incident Created
-0:01:17, Activity Log.,Ally Neil,002  Incident Created
-0:01:17, CAD log, Simulation Started,  loaded incidents 100 187
-0:00:05, CAD log, Simulation Started,  loaded incidents 100 187 188 189 190 191
-0:00:10, CAD log, Simulation Paused.
-0:00:12, CAD log, Simulation Started,  loaded incidents 100 187 188 189 190 191
-0:00:05, CAD log, Simulation Started,  loaded incidents 100 187 188 189 190 191
-0:00:25, CAD log, Incident #187, A: HELLO WORLD
-0:00:36, CAD log, Simulation Paused.
+00:01:18, CMS Activated,N SR-55  5.38 Baker Street, 'BBBBB:::::'
+00:01:18, CMS Activated,N I-405 15.18 MAGNOLIA ST, 'SLOW FOR THE::CONE ZONE:ROAD WORK:AHEAD:'
+00:01:18, CAD Log, Simulation Started at 26 Dec 2019 16:40:07 with incidents 100 187 188 189 190 191
+00:01:18, CAD Log, Incident #187, Jose Trainee: HELLO TMC WORLD
+00:01:18, Activity Log,Ha Khanh Duy,001  Per 32-1 NB rte 405 blocked
+00:01:18, Activity Log,Gross Angelo,001  HCC NOTIFIED
+00:01:18, Activity Log,Gross Angelo,001  32-1 Vehicle Disabled S 55@ 405 1308 hours
+00:01:18, Activity Log,,021 10-98 Assignment Completed 75-1
+00:01:18, Activity Log,,021 10-98 Let's get pizza. 75-1
+00:01:18, Activity Log,Bailey Mary,001  Incident Created
+00:01:18, Activity Log,Hockaday Neil,002  Incident Created
+00:01:18, Activity Log,Quan Ally,002  Incident Created
+00:01:53, CMS Activated,N SR-73 24.91 North of Jamboree, 'LINES ON ROAD:::::'
+00:02:28, CMS Updated, N SR-73 24.91 North of Jamboree, 'SNOW ON ROAD:::::'
+00:03:13, CAD Log, Incident #187, Jose Trainee: SEND ICE CREAM
+00:03:33, CMS Deactivated, N SR-73 24.91 North of Jamboree
+00:04:04, CAD Log, Simulation Paused.
Index: /trunk/webapps/dynamicdata/cms_messages.json
===================================================================
--- /trunk/webapps/dynamicdata/cms_messages.json	(revision 463)
+++ /trunk/webapps/dynamicdata/cms_messages.json	(revision 551)
@@ -49,5 +49,5 @@
 {"cms":{"index":"84","message":{"displayTime":"","phase1":{"Line1":"","Line2":"","Line3":""},"phase2":{"Line1":"","Line2":"","Line3":""}}}},
 {"cms":{"index":"85","message":{"displayTime":"","phase1":{"Line1":"","Line2":"","Line3":""},"phase2":{"Line1":"","Line2":"","Line3":""}}}},
-{"cms":{"index":"86","message":{"displayTime":"","phase1":{"Line1":"AAAAAA","Line2":"","Line3":""},"phase2":{"Line1":"","Line2":"","Line3":""}}}},
+{"cms":{"index":"86","message":{"displayTime":"","phase1":{"Line1":"","Line2":"","Line3":""},"phase2":{"Line1":"","Line2":"","Line3":""}}}},
 {"cms":{"index":"87","message":{"displayTime":"","phase1":{"Line1":"","Line2":"","Line3":""},"phase2":{"Line1":"","Line2":"","Line3":""}}}},
 {"cms":{"index":"88","message":{"displayTime":"","phase1":{"Line1":"","Line2":"","Line3":""},"phase2":{"Line1":"","Line2":"","Line3":""}}}},
Index: /trunk/webapps/dynamicdata/ratings.csv
===================================================================
--- /trunk/webapps/dynamicdata/ratings.csv	(revision 551)
+++ /trunk/webapps/dynamicdata/ratings.csv	(revision 551)
@@ -0,0 +1,2 @@
+00:02:00, Evaluation, CAD, Best
+00:02:00, Evaluation, ATMS, Average
Index: /trunk/webapps/einotebook/script/scrollframe.js
===================================================================
--- /trunk/webapps/einotebook/script/scrollframe.js	(revision 548)
+++ /trunk/webapps/einotebook/script/scrollframe.js	(revision 551)
@@ -12,6 +12,9 @@
 }
 
+// Collect all the ratings from the events 
 function collectRatings() 
 {
+    var output = ""
+    var ratingCount = 0
     // Consider each event in the incident script
     for (var evtidx = 0; evtidx < events.length; evtidx++)
@@ -27,10 +30,14 @@
                 // If it not the default value we want to save it
                 if (item.rating > 0)
-                {
-                    console.log("collecting event"+evtidx + " at " + events[evtidx].time.format() +" "+item.type + " " + item.rating)
+                {   // Build a string for the log in this format:
+                    //03:01:00, Evaluation, CMS, Poor
+                    output += events[evtidx].time.format() +", Evaluation, "+item.type + ", " + item.ratingQualities[item.rating] + "\n"
+                    ratingCount += 1;  
                 }
             }
         }
     }
+    submitRatings(output);
+    alert(ratingCount + " rating were saved.")
 }
 
@@ -55,12 +62,12 @@
 */
 
-// TODO
-function submitRatings()
+// Send the string of ratings to the server
+function submitRatings(logString)
 {
         // Using POST to send the data 
         var xhr = new XMLHttpRequest();
-        xhr.open("POST", "../../cgi-bin/saveRatings.py", true);
+        xhr.open("POST", "/cgi-bin/saveRatingsToLog.py", true);
         xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
         // send the collected data
-        xhr.send("msg="+outString);
+        xhr.send("msg="+logString);
 }
Index: /trunk/webapps/einotebook/script/index.html
===================================================================
--- /trunk/webapps/einotebook/script/index.html	(revision 548)
+++ /trunk/webapps/einotebook/script/index.html	(revision 551)
@@ -20,5 +20,5 @@
             width='100%'></iframe>
 
-      </form>
+      
    
   </body>
Index: /trunk/webapps/einotebook/roles/roles.js
===================================================================
--- /trunk/webapps/einotebook/roles/roles.js	(revision 540)
+++ /trunk/webapps/einotebook/roles/roles.js	(revision 551)
@@ -49,4 +49,7 @@
 function highlightLatestEvent() 
 {
+    // workaround for defect #212 is disable this function
+    return; 
+
     Roles.events.setEmphasis();  // Set text colors on all events
 
@@ -69,6 +72,8 @@
 	Roles.incidents = theIncidents;
 	Roles.events = theEvents;
-	Roles.events.win = document.getElementById("view").contentWindow;
-	Roles.events.doc = getDocumentFromFrame('view');
+    // workaround for defect #212 is delete these two lines so they don't conflict
+    //   with the Scripts.events.win
+	//Roles.events.win = document.getElementById("view").contentWindow;
+	//Roles.events.doc = getDocumentFromFrame('view');
     // reset SELECT box to default value
     document.getElementById("desiredRole").value = "TELEPHONE CONVERSATION";
@@ -108,5 +113,5 @@
 	
 	// display events in iframe
-	getDocumentFromFrame('view').body.innerHTML = html;	
+	getDocumentFromFrame('rolesview').body.innerHTML = html;	
    
 	// resize iframe to appropriate height
@@ -150,7 +155,7 @@
 {
     var height = document.documentElement.clientHeight;
-    height -= pageY(document.getElementById('view'));
+    height -= pageY(document.getElementById('rolesview'));
     height = (height < 0) ? 0 : height - 10;
-    document.getElementById('view').style.height = height + 'px';
+    document.getElementById('rolesview').style.height = height + 'px';
 }
 
Index: /trunk/webapps/einotebook/roles/index.html
===================================================================
--- /trunk/webapps/einotebook/roles/index.html	(revision 548)
+++ /trunk/webapps/einotebook/roles/index.html	(revision 551)
@@ -9,10 +9,10 @@
     <script type="text/javascript" src="roles.js"></script> 
     <script type="text/javascript" src="../scripts/cookies.js"></script>
-    <title>Script</title>
+    <title>Roles</title>
   </head>
   <body>
    
-    <button class="jumpToCurrentEvent" 
-            onclick="jumpToLastExecutedEvent()">Jump to Current Event</button>
+    <!--button class="jumpToCurrentEvent" 
+            onclick="jumpToLastExecutedEvent()">Jump to Current Event</button-->
     <!-- A combo box for which role is to be displayed on the page -->
     <select id="desiredRole" onchange="changeRole()">
@@ -22,5 +22,5 @@
       <option value="CHP RADIO">CHP RADIO</option>
     </select>
-    <iframe id='view' src='../script/scrollframe.html' frameborder='0' scrolling='yes'
+    <iframe id='rolesview' src='../script/scrollframe.html' frameborder='0' scrolling='yes'
             width='100%'></iframe>
 
Index: /trunk/webapps/einotebook/scripts/Event.js
===================================================================
--- /trunk/webapps/einotebook/scripts/Event.js	(revision 540)
+++ /trunk/webapps/einotebook/scripts/Event.js	(revision 551)
@@ -178,5 +178,5 @@
 	function focus()
 	{
-		/* This method was discarded because it moved the scroll bar of the parent of
+		/* This next 3 lines were discarded because it moved the scroll bar of the parent of
 		 * the given window in addition to the scroll bar of the given window..
 		var positionOfPound = window.location.indexOf("#");
@@ -184,5 +184,5 @@
 		window.location = rootLocation + "#" + eventAnchorName;
 		*/
-		events.win.scrollTo(0, absoluteTop(events.doc.getElementById(this.eventHeaderID)));
+                events.win.scrollTo(0, absoluteTop(events.doc.getElementById(this.eventHeaderID)));
 	}
 	
@@ -195,5 +195,5 @@
         if (events.doc.getElementById(this.eventHeaderID) != null)
         {
-		events.doc.getElementById(this.eventHeaderID).style.borderColor = "blue";
+        	events.doc.getElementById(this.eventHeaderID).style.borderColor = "blue";
 		events.doc.getElementById(this.eventHeaderID).style.backgroundColor = "yellow";
 		events.doc.getElementById(this.eventHeaderID).style.color = "black";
Index: /trunk/webapps/einotebook/scripts/Evaluation.js
===================================================================
--- /trunk/webapps/einotebook/scripts/Evaluation.js	(revision 548)
+++ /trunk/webapps/einotebook/scripts/Evaluation.js	(revision 551)
@@ -10,4 +10,5 @@
     
     //========== public constants ==========//
+    this.ratingQualities = ["", "Worst","Poor","Average","Good","Best"];
     this.id = Evaluation.id;
     this.ratingGroupName = "evaluationGroup" + this.id;    
@@ -75,6 +76,5 @@
 
         this.rating = givenRating;
-
-        console.log(this.ratingGroupName + " recordRating of " + this.rating )
+        //console.log(this.ratingGroupName + " recordRating of " + this.rating )
     }
 
@@ -103,9 +103,9 @@
                "<table align='right' class='evaluationScale'>" +
                "<tr>" +
-               "<td class='eventRadioButtonSmallScale'>Best</td>" +
-               "<td class='eventRadioButtonSmallScale'>Good</td>" +
-               "<td class='eventRadioButtonSmallScale'>Average</td>" +
-               "<td class='eventRadioButtonSmallScale'>Poor</td>" +
-               "<td class='eventRadioButtonSmallScale'>Worst</td>" +
+               "<td class='eventRadioButtonSmallScale'>"+this.ratingQualities[5]+"</td>" +
+               "<td class='eventRadioButtonSmallScale'>"+this.ratingQualities[4]+"</td>" +
+               "<td class='eventRadioButtonSmallScale'>"+this.ratingQualities[3]+"</td>" +
+               "<td class='eventRadioButtonSmallScale'>"+this.ratingQualities[2]+"</td>" +
+               "<td class='eventRadioButtonSmallScale'>"+this.ratingQualities[1]+"</td>" +
                "</tr>" +
                "<tr>" +
Index: /trunk/webapps/unifiedlogdisplay.html
===================================================================
--- /trunk/webapps/unifiedlogdisplay.html	(revision 551)
+++ /trunk/webapps/unifiedlogdisplay.html	(revision 551)
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+  <head>
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+    <title>Unified Log Display v</title> 
+
+<link href="common/unifiedlog.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+<div class="row">
+    <p id="display"></p>   <!-- There is a css style for this id -->
+</div>
+    <script  src="common/js/fileutils.js"></script>
+    <script  src="common/js/revision_number.dat"></script>
+    <script  src="common/js/displayutils.js"></script> 
+   <script>
+function showLog(filename)
+{
+    var display = document.getElementById("display");
+    loadLog(filename, display)
+}
+// Start
+showRevision();
+parms = getQueryParms();
+// See if a file parameter was provided by the user
+// if not, use the default file
+if (parms['file'] == null)
+{
+    showLog("unifiedlog_final.csv");
+}
+else
+{
+    showLog(parms['file']);
+}
+   </script>
+  </body>
+</html>
Index: /trunk/webapps/mergelogs.bash
===================================================================
--- /trunk/webapps/mergelogs.bash	(revision 551)
+++ /trunk/webapps/mergelogs.bash	(revision 551)
@@ -0,0 +1,10 @@
+# Merge log files and sort by timestamp
+# Invoke from 'trunk' folder
+# TODO: Add error handling - missing files, not executed from 'trunk', ... 
+
+# 1. Extract CAD DETAIL lines from incident_script.xml
+PYTHONPATH=webapps/unifiedlogger.zip  python -m extract_caddetails
+dir="webapps/dynamicdata"
+# 2. Merge the unified log with cad details and evaluation ratings
+cat $dir/unifiedlog.csv $dir/caddetails.csv $dir/ratings.csv | sort > $dir/unifiedlog_final.csv
+
Index: /trunk/webapps/unifiedlogmonitor.html
===================================================================
--- /trunk/webapps/unifiedlogmonitor.html	(revision 512)
+++ /trunk/webapps/unifiedlogmonitor.html	(revision 551)
@@ -4,41 +4,9 @@
   <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
     <title>Unified Logger v</title> 
-<style>
-* {
-  box-sizing: border-box;
-}
-body {
-   background-color: #000033;
-   color: goldenrod
-}
-
-/* Color Code for unified logger */ 
-.CAD-log{
-    color: #00FFFF;
-}
-.Activity-log{
-    color: #32CD32;
-}
-.CMS-Activated{
-    color: #FFFF00;
-}
-
-/* Padding for table cells */
-td { padding-top:2px; padding-right:10px; padding-bottom:2px; padding-left:10px; }
-/* styling for messages */
-#msgs{
-  padding: 15px 10% 15px 10%;
-  font-size: 20px;
-  font-family: monospace;
-  font-weight:lighter;
-  color: white;
-  padding-left: 2%;
-  padding-right: 2%;
-}
-</style>
+<link href="common/unifiedlog.css" rel="stylesheet" type="text/css">
 </head>
 <body>
 <div class="row">
-    <p id="msgs"></p>
+    <p id="display"></p>
 </div>
     <script  src="common/js/fileutils.js"></script>
@@ -46,57 +14,15 @@
     <script  src="common/js/displayutils.js"></script> 
    <script>
-// Load the unified log 
-function loadLog()
+function showLog()
 {
-    var display = document.getElementById("msgs");
-    display.innerHTML = ""
-    // Asynchronous file read of unified log data
-    loadJSON("dynamicdata/unifiedlog.csv", function(response)
-    {
-        // Format the csv data into an HTML table
-        var allRows = response.split(/\r?\n|\r/);
-        var table = '<table>';
-        // Put the last log entry at the TOP of the table
-        for (var singleRow = allRows.length-1; singleRow >= 0; singleRow--)
-        {
-            var rowCells = allRows[singleRow].split(',');
-            var msg_type = "";
-
-            // trimming white space in the type of messages 
-            // ingore the emtpy line 
-            if (rowCells.length > 1) {
-                console.log("row cell " , rowCells[1]);
-                rowCells[1] = rowCells[1].trim();
-            }
-            // Implement ticket #190 
-            // Checking for the type of logging information 
-            if (rowCells[1] == "CAD log") {
-                msg_type = "class=\"CAD-log\"";
-            } else if (rowCells[1] == "Activity Log.") {
-                msg_type = "class=\"Activity-log\"";
-            } else if (rowCells[1] == "CMS Activated.") {
-                msg_type = "class=\"CMS-Activated\"";
-            } 
-            // add the message type class to that row 
-            table += '<tr ' + msg_type + '>';
-            for (var rowCell = 0; rowCell < rowCells.length; rowCell++)
-            {
-                table += '<td>';
-                table += rowCells[rowCell];
-                table += '</td>';
-            }
-            table += '</tr>';
-        }
-        table += '</table>';
-        // Add the table to the messages div
-        display.innerHTML += table;
-    }
-    );
+    var display = document.getElementById("display");
+    // Utility reads from given file and puts into given DIV
+    loadLog("unifiedlog.csv", display);
+    // Start a timer to do this again in 5 seconds
+    var x = setTimeout(showLog, 5000);
 }
 // Start
 showRevision();
-loadLog();
-// start an interval timer to refresh the log every 5 seconds
-var displayTimer = setInterval(loadLog, 5000);
+showLog();
    </script>
   </body>
Index: /trunk/webapps/cgi-bin/saveEvals.py
===================================================================
--- /trunk/webapps/cgi-bin/saveEvals.py	(revision 547)
+++ /trunk/webapps/cgi-bin/saveEvals.py	(revision 551)
@@ -7,6 +7,8 @@
 output = ""
 for j in range(1, 3):
-    output +=  form.getvalue('group'+str(j))
-    output += ", "
+    rating =  form.getvalue('evaluationGroup'+str(j))
+    if rating is not None:
+        output +=  form.getvalue('evaluationGroup'+str(j))
+        output += ", "
 
 print "Content-type:text/html\r\n\r\n"
Index: /trunk/webapps/cgi-bin/saveRatingsToLog.py
===================================================================
--- /trunk/webapps/cgi-bin/saveRatingsToLog.py	(revision 551)
+++ /trunk/webapps/cgi-bin/saveRatingsToLog.py	(revision 551)
@@ -0,0 +1,16 @@
+#!/usr/bin/python
+# Save parameter to a file
+# Import modules for CGI handling 
+import cgi, cgitb, os 
+
+# Create instance of FieldStorage 
+form = cgi.FieldStorage() 
+
+# Get data from fields
+outMessage = form.getvalue('msg')
+   
+# write message to file
+text_file = open("dynamicdata/ratings.csv", "w")
+text_file.write(outMessage)
+text_file.close()
+
Index: /trunk/webapps/common/js/fileutils.js
===================================================================
--- /trunk/webapps/common/js/fileutils.js	(revision 442)
+++ /trunk/webapps/common/js/fileutils.js	(revision 551)
@@ -1,27 +1,48 @@
-    // Load the dynamic json file for highways, etc.
-    // Ref: https://codepen.io/KryptoniteDove/post/load-json-file-locally-using-pure-javascript
-    function loadJSON(inFile, callback)
+// Load the dynamic json file for highways, etc.
+// Ref: https://codepen.io/KryptoniteDove/post/load-json-file-locally-using-pure-javascript
+function loadJSON(inFile, callback)
+{
+    var xobj = new XMLHttpRequest();
+    // Assume XML unless filename ends with .json
+    if (inFile.endsWith(".json"))
     {
-        var xobj = new XMLHttpRequest();
-        // Assume XML unless filename ends with .json
-        if (inFile.endsWith(".json"))
+        xobj.overrideMimeType("application/json");
+    }
+    if (inFile.endsWith(".csv"))
+    {
+        xobj.overrideMimeType("text/csv");
+    }
+    xobj.open('GET', inFile, true);
+    xobj.onreadystatechange = function()
+    {
+        if (xobj.readyState == 4 && xobj.status == "200")
         {
-            xobj.overrideMimeType("application/json");
+            callback(xobj.responseText);
         }
-        if (inFile.endsWith(".csv"))
-        {
-            xobj.overrideMimeType("text/csv");
-        }
-        xobj.open('GET', inFile, true);
-        xobj.onreadystatechange = function()
-        {
-            if (xobj.readyState == 4 && xobj.status == "200")
-            {
-                callback(xobj.responseText);
-            }
-        };
-        // We want ajax to ignore any cached responses
-        xobj.setRequestHeader('If-Modified-Since', 'Sat, 01 Jan 2000 01:01:01 GMT')
-        xobj.send(null);
+    };
+    // We want ajax to ignore any cached responses
+    xobj.setRequestHeader('If-Modified-Since', 'Sat, 01 Jan 2000 01:01:01 GMT')
+    xobj.send(null);
+}
+
+/* Retrieve URL parameters passed to a web page
+   @return a dictionary of key/value pairs
+*/
+function getQueryParms()
+{
+    var items = {};
+    var query = window.location.search.substring(1);
+    var parms = query.split("&");
+    // Examine each parameter
+    for (var i = 0, max = parms.length; i < max; i++)
+    {
+        // check for trailing & with no param
+        if (parms[i] === "") 
+            continue; // skip it
+
+        var param = parms[i].split("=");
+        // If it's valid add it to dictionary
+        items[decodeURIComponent(param[0])] = decodeURIComponent(param[1] || "");
     }
-
+    return items
+}
Index: /trunk/webapps/common/js/revision_number.dat
===================================================================
--- /trunk/webapps/common/js/revision_number.dat	(revision 547)
+++ /trunk/webapps/common/js/revision_number.dat	(revision 551)
@@ -1,3 +1,3 @@
 
-    var revisionNumber = "540";
+    var revisionNumber = "549";
     
Index: /trunk/webapps/common/js/displayutils.js
===================================================================
--- /trunk/webapps/common/js/displayutils.js	(revision 386)
+++ /trunk/webapps/common/js/displayutils.js	(revision 551)
@@ -14,2 +14,58 @@
 }
 
+// Load a CSV file and convert to a string of formatted HTML
+// @param filename the file containing the CSV input
+// @param targetDiv the div element in which the HTML should be placed.
+function loadLog(filename, targetDiv)
+{
+    // Asynchronous file read of unified log data
+    loadJSON("dynamicdata/" + filename, function(response)
+    {
+        // Format the csv data into an HTML table
+        var allRows = response.split(/\r?\n|\r/);
+        var table = '<table>';
+        // Put the last log entry at the TOP of the table
+        for (var singleRow = allRows.length-1; singleRow >= 0; singleRow--)
+        {
+            var rowCells = allRows[singleRow].split(',');
+            var msg_type = ""; // color white is default
+
+            // trimming white space in the type field 
+            // ingore the empty line 
+            if (rowCells.length > 1) 
+            {
+                rowCells[1] = rowCells[1].trim();
+            }
+            var label = String(rowCells[1]);
+            var info = String(rowCells[3]).trim();
+            // Implement ticket #190 
+            // Checking for the type of logging information 
+            if (label.startsWith("CAD")) {
+                msg_type = "class=\"CAD\"";
+                if (info.startsWith("Detail")) {
+                    msg_type = "class=\"CADdetail\"";
+                }
+            } else if (label.startsWith("Activity")) {
+                msg_type = "class=\"Activity\"";
+            //} else if (rowCells[1] == "CMS Activated.") {
+            } else if (label.startsWith("CMS")) {
+                msg_type = "class=\"CMS\"";
+            } else if (label.startsWith("Eval")) {
+                msg_type = "class=\"Evaluation\"";
+            } 
+
+            // add the message type class to that row 
+            table += '<tr ' + msg_type + '>';
+            for (var rowCell = 0; rowCell < rowCells.length; rowCell++)
+            {
+                table += '<td>';
+                table += rowCells[rowCell];
+                table += '</td>';
+            }
+            table += '</tr>';
+        }
+        table += '</table>';
+        targetDiv.innerHTML = table;
+    }
+    );
+}
Index: /trunk/webapps/common/unifiedlog.css
===================================================================
--- /trunk/webapps/common/unifiedlog.css	(revision 551)
+++ /trunk/webapps/common/unifiedlog.css	(revision 551)
@@ -0,0 +1,37 @@
+/* A style sheet for the unified log HTML table */
+* {
+  box-sizing: border-box;
+}
+body {
+   background-color: #000033;
+   color: goldenrod
+}
+
+/* Color Code for unified logger */ 
+.CAD{
+    color: cyan; 
+}
+.CADdetail{
+    color: blue; 
+}
+.Activity{
+    color: #32CD32;  /* green */
+}
+.CMS{
+    color: yellow; 
+}
+.Evaluation{
+    color: magenta;
+}
+/* Padding for table cells */
+td { padding-top:2px; padding-right:10px; padding-bottom:2px; padding-left:10px; }
+/* styling for html table */
+#display{
+  padding: 15px 10% 15px 10%;
+  font-size: 20px;
+  font-family: monospace;
+  font-weight:lighter;
+  color: white;
+  padding-left: 2%;
+  padding-right: 2%;
+}
Index: unk/webapps/paramdemo.html
===================================================================
--- /trunk/webapps/paramdemo.html	(revision 518)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<HTML>
-<BODY>
-Top of Page
-<script>
-	// Demo of how to retrieve URL parameter in javascript
-	// Might be useful in ticket #143
-var items = {};
-var query = window.location.search.substring(1);
-var parms = query.split("&");
-// Examine each parameter
-for (var i = 0, max = parms.length; i < max; i++)
-{
-    // check for trailing & with no param
-    if (parms[i] === "") 
-        continue; // skip it
-
-    var param = parms[i].split("=");
-    //console.log("got parm: ",param);
-    // If it's valid add it to dictionary
-    items[decodeURIComponent(param[0])] = decodeURIComponent(param[1] || "");
-   
-}
-if (items['dotsize'] == "large")
-{
-    document.writeln("large");
-}
-else
-{
-    document.writeln("normal");
-}
-</script>
-</BODY>
-</HTML>
Index: unk/webapps/SampleEvalPage.html
===================================================================
--- /trunk/webapps/SampleEvalPage.html	(revision 547)
+++ 	(revision )
@@ -1,24 +1,0 @@
-<html>
-<head>
-<title>Sample Evaluations Page</title>
-</head>
-<body>
-<form action = "cgi-bin/saveEvals.py" method = "post">
-<div align="center"></input>
-<input type="radio" name="group1" value="1">1</input>
-<input type="radio" name="group1" value="2">2</input>
-<input type="radio" name="group1" value="3" checked>3</input>
-<input type="radio" name="group1" value="4">4</input>
-<input type="radio" name="group1" value="5">5</input>
-<hr>
-<input type="radio" name="group2" value="1">1</input>
-<input type="radio" name="group2" value="2">2</input>
-<input type="radio" name="group2" value="3" checked>3</input>
-<input type="radio" name="group2" value="4">4</input>
-<input type="radio" name="group2" value="5">5</input>
-<hr>
-<input type = "submit" value = "Submit" />
-</div>
-</form>
-</body>
-</html>
