watchman 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/.rvmrc ADDED
@@ -0,0 +1,2 @@
1
+ rvm ree@watchman --create
2
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :gemcutter
2
+
3
+ # Specify your gem's dependencies in watchman.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,32 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ watchman (0.0.2)
5
+ mechanize
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.1.2)
11
+ fakeweb (1.3.0)
12
+ mechanize (1.0.0)
13
+ nokogiri (>= 1.2.1)
14
+ nokogiri (1.4.4)
15
+ rspec (2.3.0)
16
+ rspec-core (~> 2.3.0)
17
+ rspec-expectations (~> 2.3.0)
18
+ rspec-mocks (~> 2.3.0)
19
+ rspec-core (2.3.1)
20
+ rspec-expectations (2.3.0)
21
+ diff-lcs (~> 1.1.2)
22
+ rspec-mocks (2.3.0)
23
+
24
+ PLATFORMS
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ bundler (>= 1.0.0.rc.6)
29
+ fakeweb
30
+ mechanize
31
+ rspec (>= 2.3.0)
32
+ watchman!
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec'
5
+ require 'rspec/core/rake_task'
6
+
7
+ desc "Run all examples"
8
+ RSpec::Core::RakeTask.new(:spec) do |t|
9
+ t.rspec_opts = %w[--color]
10
+ end
data/lib/watchman.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'mechanize'
2
+
3
+ module Watchman
4
+ autoload :Client,"watchman/client"
5
+ autoload :MedicWatcher,"watchman/medic_watcher"
6
+ autoload :CallWatcher,"watchman/call_watcher"
7
+ autoload :Call,"watchman/call"
8
+ end
@@ -0,0 +1,65 @@
1
+ module Watchman
2
+ class Call
3
+ def initialize(page)
4
+ @page = page
5
+ end
6
+
7
+ def incident_number
8
+ end
9
+
10
+ def raw_notes
11
+ notes.map{|n| "#{n[:time]} #{n[:text]}"}.join("|")
12
+ end
13
+
14
+ def notes
15
+ xpath("/html/body/table/tr[3]/table/tr/td/table/tr").map do |node|
16
+ {:time=>node.children[0].text,:text=>node.children[1].text.gsub("\n","")}
17
+ end
18
+ end
19
+
20
+ def address
21
+ @page.links_with(:href=>/SearchDStatsSubmit\.php\?Address/).first.text.gsub(/-BC$/,"")
22
+ end
23
+
24
+ def incident_number
25
+ xpath("/html/body/h3[1]").text.split(":").last.strip
26
+ end
27
+
28
+ def nature
29
+ xpath("/html/body/table/tr[1]/td[1]/table/tr[3]/td").text.strip.split("-").last
30
+ end
31
+
32
+ def apparatus
33
+ xpath("/html/body/table/tr[1]/td[2]/table/tr/td[1]").map{|c| c.text.gsub("\n","").strip}
34
+ end
35
+
36
+ def pro_qa_notes
37
+ notes.select{|n| n[:text] =~ /^ProQA/}
38
+ end
39
+
40
+ def incidental_notes
41
+ notes.select{|n| n[:text] =~ /^\s*\*/}
42
+ end
43
+
44
+ def spliced_notes
45
+ s_notes = {}
46
+ notes.select{|n| n[:text] =~ /[\(\[]\d+-\d+[\)\]]$/}.each do |note|
47
+ note_text = note[:text]
48
+ note_text_arr = note_text.split(/\s/)
49
+ token = note_text_arr.delete_at(note_text_arr.size - 1)
50
+ final_text = note_text_arr.join(" ")
51
+ if s_notes[token].nil?
52
+ s_notes[token] = [{:time=>note[:time],:text=>final_text}]
53
+ else
54
+ s_notes[token] << {:time=>note[:time],:text=>final_text}
55
+ end
56
+ end
57
+ s_notes
58
+ end
59
+
60
+ private
61
+ def xpath(path)
62
+ @page.parser.xpath(path)
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,16 @@
1
+ module Watchman
2
+ class CallWatcher
3
+
4
+ def initialize
5
+ @client = Client.new
6
+ end
7
+
8
+ def info_for(incident_number)
9
+ call = Call.new(@client.get("DisplayCall.php?Incid=#{incident_number}"))
10
+ if call.notes.size == 0
11
+ call = Call.new(@client.get("DisplayFireCall.php?Incid=#{incident_number}"))
12
+ end
13
+ call
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,33 @@
1
+ module Watchman
2
+ class Client
3
+ class << self
4
+ attr_accessor :username,:password,:host
5
+ end
6
+
7
+ def get(path)
8
+ agent.get("https://#{Client.host}/#{path}")
9
+ end
10
+
11
+ def agent
12
+ if @_agent.nil?
13
+ @_agent = Mechanize.new
14
+ page = @_agent.get("http://#{Client.host}/")
15
+ form = page.form("UserForm")
16
+ form.UserName = Client.username
17
+ form.Password = Client.password
18
+ @_agent.submit(form, form.buttons.first)
19
+ end
20
+ @_agent
21
+ end
22
+
23
+ def add_cookie(cookie,key)
24
+ cookie.secure = false
25
+ cookie.domain = Client.host
26
+ if agent.cookie_jar.jar[Client.host].nil?
27
+ agent.cookie_jar.jar[Client.host] = {"/"=>{key=>cookie}}
28
+ else
29
+ agent.cookie_jar.jar[Client.host]["/"][key] = cookie
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,48 @@
1
+ module Watchman
2
+ class MedicWatcher
3
+ STATUSI = ["AVL","DSP","ENR","TRN","ARV","AV1","INC","OFF","ONS","ORP","ENH","ONH","AOS","OOD","OOS","AAS"]
4
+
5
+ def initialize
6
+ @client = Client.new
7
+ end
8
+
9
+ def raw_page
10
+ page.parser.to_s
11
+ end
12
+
13
+ def page
14
+ if @_medic_page.nil?
15
+ @client.add_cookie(cookie,"TScreen")
16
+ @_medic_page = @client.get("AjaxTS2.php")
17
+ end
18
+ @_medic_page
19
+ end
20
+
21
+ def city_status
22
+ count(/TruckID=M(11|15|21|22|23)\d/,"AVL")
23
+ end
24
+
25
+ def county_status
26
+ count(/TruckID=M(11|13|15|21|22|23|24)\d/,"AVL")
27
+ end
28
+
29
+ def status_of(medic)
30
+ STATUSI.each do |status|
31
+ return status if count(/TruckID=M#{medic}/,status) >= 1
32
+ end
33
+ "OOS"
34
+ end
35
+
36
+ private
37
+
38
+ def cookie
39
+ Mechanize::Cookie.new("TScreen","4")
40
+ end
41
+
42
+ def count(regex,status = "AVL")
43
+ nodes = page.parser.css("a.#{status}")
44
+ nodes = nodes.map{|node| node.attributes["href"].value}.select{|val| val =~ regex}
45
+ nodes.size
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,3 @@
1
+ module Watchman
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,10 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require 'watchman'
4
+ require 'fakeweb'
5
+
6
+ FakeWeb.allow_net_connect = false
7
+
8
+ # Requires supporting ruby files with custom matchers and macros, etc,
9
+ # in spec/support/ and its subdirectories.
10
+ Dir['./spec/support/**/*.rb'].map {|f| require f}
@@ -0,0 +1,1540 @@
1
+ class IstatusMocker
2
+
3
+ class << self
4
+ def fake_login(host)
5
+ FakeWeb.register_uri(:get, "http://#{host}/",
6
+ 'content-type'=>"text/html",
7
+ :body => LOGIN_PAGE_HTML)
8
+ FakeWeb.register_uri(:post,"http://#{host}/UserLoginSubmit.php",
9
+ 'content-type'=>"text/html",
10
+ :body => "logged in")
11
+ end
12
+
13
+ def fake_medic_path(host)
14
+ fake_login(host)
15
+ FakeWeb.register_uri(:get,"https://#{host}/AjaxTS2.php",
16
+ 'content-type'=>"text/html",
17
+ :body => MEDIC_PAGE_HTML)
18
+ end
19
+
20
+ def fake_call_path(host,incident_number)
21
+ fake_login(host)
22
+ FakeWeb.register_uri(:get,"https://#{host}/DisplayCall.php?Incid=#{incident_number}",
23
+ 'content-type'=>"text/html",
24
+ :body => INCIDENT_HTML)
25
+ end
26
+ end
27
+
28
+
29
+
30
+ LOGIN_PAGE_HTML = %Q{
31
+ <HTML>
32
+ <HEAD>
33
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
34
+ <!--<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">-->
35
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
36
+ <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
37
+ <META HTTP-EQUIV="EXPIRES" CONTENT="0">
38
+ <TITLE>EnRoute I-STATUS - Version 5.10</TITLE>
39
+ <LINK REL="stylesheet" HREF="DisplayFormat.css" TYPE="text/css">
40
+ <script language="javascript">
41
+ //bring the page to foreground
42
+ this.focus();
43
+ </script>
44
+ </HEAD>
45
+ <BODY CLASS="Maint" onLoad='document.UserForm.UserName.focus();' j=l>
46
+ <FORM NAME=UserForm METHOD=POST ACTION=UserLoginSubmit.php><BR><BR><CENTER><IMG SRC=I-STATUS.gif><BR><BR><BR><H3 CLASS=Status>User Login</H3><div align='center'><TABLE CLASS='Maint' >
47
+ <TR >
48
+ <TD CLASS='Maint' >
49
+ User Name</TD>
50
+ <TD CLASS='Maint' >
51
+ <INPUT TYPE=TEXT NAME=UserName onfocus=this.select() VALUE=></TD>
52
+ </TR>
53
+ <TR >
54
+ <TD CLASS='Maint' >
55
+ Password</TD>
56
+ <TD CLASS='Maint' >
57
+ <INPUT TYPE=PASSWORD NAME=Password onfocus=this.select() VALUE=></TD>
58
+ </TR>
59
+ </TABLE></div>
60
+ <BR><BR><INPUT TYPE=SUBMIT VALUE='Login' CLASS=Maint><BR><BR><BR><center>Copyright &#169; 2010 Infor. All rights reserved. <a target='new' href='http://www.enroute911.com'>www.enroute911.com</a>.</center></FORM>
61
+ </BODY>
62
+ </HTML>
63
+ }
64
+
65
+ MEDIC_PAGE_HTML = %Q{
66
+ <html><head>
67
+
68
+ <title>EnRoute I-STATUS - Version 5.10</title>
69
+ <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
70
+ <!-- MJG 2606995 remove EnRoute Banner from page to recover surface space. was Rows=60 changed to Rows = 0 to get space -->
71
+ </head><frameset border="0" framespacing="0" frameborder="no" rows="0,*,">
72
+ <frame scrolling="no" allowtransparency="true" frameborder="0" marginheight="0" marginwidth="0" noresize="" name="Topper" src="NewDispatchNav.php">
73
+ <html><head>
74
+
75
+
76
+ <!--<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">-->
77
+ <meta content="text/html; charset=windows-1252" http-equiv="Content-Type">
78
+ <meta content="NO-CACHE" http-equiv="PRAGMA">
79
+ <meta content="0" http-equiv="EXPIRES">
80
+ <title>EnRoute I-STATUS - Version 5.10</title>
81
+ <link type="text/css" href="DisplayFormat.css" rel="stylesheet">
82
+ <script language="javascript">
83
+ //bring the page to foreground
84
+ this.focus();
85
+ </script>
86
+ </head><body j="l" style="margin: 0px;" class="Nav">
87
+ <img hspace="0" height="60" align="left" src="I-STATUSLong1.jpg"><img width="100%" hspace="0" align="left" src="I-STATUSLong3.jpg">
88
+ <script language="javascript">
89
+ function ToggleMode() {
90
+ var cname="NiteMode";
91
+ var mode=ReadCookie(cname);
92
+ if (mode == "") mode="Day";
93
+ if (mode == "Day") {
94
+ var newmode="Nite";
95
+ } else {
96
+ var newmode="Day";
97
+ }
98
+ WriteCookie("NiteMode",newmode,1);
99
+ if (window.parent.frames.length == 0) {
100
+ window.self.location.href=window.self.location.href;
101
+ } else {
102
+ for (i=0; i&lt;window.parent.frames.length; i++)
103
+ window.parent.frames(i).location.href=window.parent.frames(i).location.href;
104
+ }
105
+ }
106
+
107
+ function popup(URL) {
108
+ opts="'toolbar=0, scrollbars=0, location=0, menubar=0, resizable=0, width=160,"
109
+ opts=opts + "height=200, top=60, left=60'"
110
+ mywindow=window.open(URL, "newwin",opts);
111
+ if (mywindow.opener == null)
112
+ mywindow.opener=self;
113
+ }
114
+
115
+ function RestrictZone(type) {
116
+ switch (type){
117
+ case 'AZ':
118
+ zones=ADZones.value;
119
+ allowstr="";
120
+ cookiename="ADZones";
121
+ break;
122
+ case 'AN':
123
+ zones=ADNats.value;
124
+ allowstr="";
125
+ cookiename="ADNats";
126
+ break;
127
+ case 'PZ':
128
+ zones=PDZones.value;
129
+ allowstr="";
130
+ cookiename="PDZones";
131
+ break;
132
+ case 'PD':
133
+ zones=PDIDs.value;
134
+ allowstr="";
135
+ cookiename="PDIDs";
136
+ break;
137
+ case 'PG':
138
+ zones=PDGrids.value;
139
+ allowstr="";
140
+ cookiename="PDGrids";
141
+ break;
142
+ case 'PN':
143
+ zones=PDNats.value;
144
+ allowstr="";
145
+ cookiename="PDNats";
146
+ break;
147
+ case 'FT':
148
+ zones=FDTacs.value;
149
+ allowstr="";
150
+ cookiename="FDTacs";
151
+ break;
152
+ case 'FD':
153
+ zones=FDIDs.value;
154
+ allowstr="";
155
+ cookiename="FDIDs";
156
+ break;
157
+ case 'FG':
158
+ zones=FDGrids.value;
159
+ allowstr="";
160
+ cookiename="FDGrids";
161
+ break;
162
+ case 'FN':
163
+ zones=FDNats.value;
164
+ allowstr="";
165
+ cookiename="FDNats";
166
+ break;
167
+ case 'DP':
168
+ zones=FDDsps.value;
169
+ allowstr="";
170
+ cookiename="FDDsps";
171
+ break;
172
+
173
+ case 'IB':
174
+ zones=ADInitBy.value;
175
+ allowstr="";
176
+ cookiename="ADInitBy";
177
+ break;
178
+ default:
179
+ zones="";
180
+ allowstr="";
181
+ cookiename="";
182
+ }
183
+ var allowed=allowstr;
184
+ var arrZones = new Array();
185
+ if (allowed)
186
+ allowed=allowed.replace(/^\s*|\s*$/g,"");
187
+ //Check if zones entered are allowed
188
+ if (allowed) {
189
+ var trash;
190
+ allowed=" "+allowed+" ";
191
+ arrZones=zones.split(" ");
192
+ //Loop thru each zone in user input
193
+ for (var i = (arrZones.length - 1); i &gt;= 0; i--) {
194
+ if (allowed.indexOf(" "+arrZones[i]+" ")&lt;0)
195
+ trash=arrZones.splice(i,1);
196
+ }
197
+ zones=arrZones.join(" ");
198
+ //If no zone left, retore the default
199
+ if (!zones) { zones=allowed.replace(/^\s*|\s*$/g,""); }
200
+ }
201
+ if (cookiename){
202
+ WriteCookie(cookiename,zones,1);
203
+ }
204
+ if (window.parent.frames.length == 0) {
205
+ window.self.location.href=window.self.location.href;
206
+ } else {
207
+ for (i=0; i&lt;window.parent.frames.length; i++)
208
+ window.parent.frames(i).location.href=window.parent.frames(i).location.href;
209
+ }
210
+ }
211
+
212
+ </script>
213
+
214
+ <script src="JSFuncs.js" language="JavaScript"></script>
215
+ <script language="JavaScript">
216
+ </script></body></html>
217
+ </frame>
218
+ <frame scrolling="no" allowtransparency="true" name="Top" noresize="" marginheight="0" marginwidth="0" frameborder="0" src="Dispatch_center.php">
219
+ <html><head><!-- Included file for dropdown menu -->
220
+ <script type="text/javascript">//&lt;![CDATA[
221
+ //----------------------------------------------------------------------------
222
+ // Code to determine the browser and version.
223
+ //----------------------------------------------------------------------------
224
+
225
+ function Browser() {
226
+ var ua, s, i;
227
+ this.isIE = false; // Internet Explorer
228
+ this.isOP = false; // Opera
229
+ this.isNS = false; // Netscape
230
+ this.version = null;
231
+ ua = navigator.userAgent;
232
+ s = "Opera";
233
+ if ((i = ua.indexOf(s)) &gt;= 0) {
234
+ this.isOP = true;
235
+ this.version = parseFloat(ua.substr(i + s.length));
236
+ return;
237
+ }
238
+ s = "Netscape6/";
239
+ if ((i = ua.indexOf(s)) &gt;= 0) {
240
+ this.isNS = true;
241
+ this.version = parseFloat(ua.substr(i + s.length));
242
+ return;
243
+ }
244
+
245
+ // Treat any other "Gecko" browser as Netscape 6.1.
246
+ s = "Gecko";
247
+ if ((i = ua.indexOf(s)) &gt;= 0) {
248
+ this.isNS = true;
249
+ this.version = 6.1;
250
+ return;
251
+ }
252
+
253
+ s = "MSIE";
254
+ if ((i = ua.indexOf(s))) {
255
+ this.isIE = true;
256
+ this.version = parseFloat(ua.substr(i + s.length));
257
+ return;
258
+ }
259
+ }
260
+
261
+ var browser = new Browser();
262
+
263
+ //----------------------------------------------------------------------------
264
+ // Code for handling the menu bar and active button.
265
+ //----------------------------------------------------------------------------
266
+ var activeButton = null;
267
+
268
+ // Capture mouse clicks on the page so any active button can be
269
+ // deactivated.
270
+ if (browser.isIE)
271
+ document.onmousedown = pageMousedown;
272
+ else
273
+ document.addEventListener("mousedown", pageMousedown, true);
274
+
275
+ function pageMousedown(event) {
276
+ var el;
277
+
278
+ // If there is no active button, exit.
279
+ if (activeButton == null)
280
+ return;
281
+
282
+ // Find the element that was clicked on.
283
+ if (browser.isIE)
284
+ el = window.event.srcElement;
285
+ else
286
+ el = (event.target.tagName ? event.target : event.target.parentNode);
287
+
288
+ // If the active button was clicked on, exit.
289
+ if (el == activeButton)
290
+ return;
291
+
292
+ // If the element is not part of a menu, reset and clear the active
293
+ // button.
294
+ if (getContainerWith(el, "DIV", "menu") == null) {
295
+ resetButton(activeButton);
296
+ activeButton = null;
297
+ }
298
+ }
299
+
300
+
301
+ function buttonClick(event, menuId) {
302
+ var button;
303
+
304
+ // Get the target button element.
305
+ if (browser.isIE)
306
+ button = window.event.srcElement;
307
+ else
308
+ button = event.currentTarget;
309
+
310
+ // Blur focus from the link to remove that annoying outline.
311
+ button.blur();
312
+
313
+ // Associate the named menu to this button if not already done.
314
+ // Additionally, initialize menu display.
315
+ if (button.menu == null) {
316
+ button.menu = document.getElementById(menuId);
317
+ if (button.menu.isInitialized == null)
318
+ menuInit(button.menu);
319
+ }
320
+
321
+ // Set mouseout event handler for the button, if not already done.
322
+ if (button.onmouseout == null)
323
+ button.onmouseout = buttonOrMenuMouseout;
324
+
325
+ // Exit if this button is the currently active one.
326
+ if (button == activeButton)
327
+ return false;
328
+
329
+ // Reset the currently active button, if any.
330
+ if (activeButton != null)
331
+ resetButton(activeButton);
332
+
333
+ // Activate this button, unless it was the currently active one.
334
+ if (button != activeButton) {
335
+ depressButton(button);
336
+ activeButton = button;
337
+ }
338
+ else
339
+ activeButton = null;
340
+
341
+ return false;
342
+ }
343
+
344
+ function buttonMouseover(event, menuId) {
345
+
346
+ var button;
347
+
348
+ if (activeButton == null) {
349
+ buttonClick(event, menuId);
350
+ return;
351
+ }
352
+
353
+ // Find the target button element.
354
+ if (browser.isIE)
355
+ button = window.event.srcElement;
356
+ else
357
+ button = event.currentTarget;
358
+
359
+ // If any other button menu is active, make this one active instead.
360
+ if (activeButton != null &amp;&amp; activeButton != button)
361
+ buttonClick(event, menuId);
362
+ }
363
+
364
+ function depressButton(button) {
365
+ var x, y;
366
+
367
+ // Update the button's style class to make it look like it's
368
+ // depressed.
369
+ button.className += " menuButtonActive";
370
+
371
+ // Set mouseout event handler for the button, if not already done.
372
+ if (button.onmouseout == null)
373
+ button.onmouseout = buttonOrMenuMouseout;
374
+ if (button.menu.onmouseout == null)
375
+ button.menu.onmouseout = buttonOrMenuMouseout;
376
+
377
+ // Position the associated drop down menu under the button and
378
+ // show it.
379
+ x = getPageOffsetLeft(button);
380
+ y = getPageOffsetTop(button) + button.offsetHeight;
381
+
382
+ // For IE, adjust position.
383
+ if (browser.isIE) {
384
+ x += button.offsetParent.clientLeft-5;
385
+ y += button.offsetParent.clientTop+3;
386
+ }
387
+
388
+ button.menu.style.left = x + "px";
389
+ button.menu.style.top = y + "px";
390
+ button.menu.style.visibility = "visible";
391
+
392
+ // For IE; size, position and show the menu's IFRAME as well.
393
+ if (button.menu.iframeEl != null)
394
+ {
395
+ button.menu.iframeEl.style.left = button.menu.style.left;
396
+ button.menu.iframeEl.style.top = button.menu.style.top;
397
+ button.menu.iframeEl.style.width = button.menu.offsetWidth + "px";
398
+ button.menu.iframeEl.style.height = button.menu.offsetHeight + "px";
399
+ button.menu.iframeEl.style.display = "";
400
+ }
401
+ }
402
+
403
+ function resetButton(button) {
404
+
405
+ // Restore the button's style class.
406
+ removeClassName(button, "menuButtonActive");
407
+
408
+ // Hide the button's menu, first closing any sub menus.
409
+ if (button.menu != null) {
410
+ closeSubMenu(button.menu);
411
+ button.menu.style.visibility = "hidden";
412
+
413
+ // For IE, hide menu's IFRAME as well.
414
+ if (button.menu.iframeEl != null)
415
+ button.menu.iframeEl.style.display = "none";
416
+ }
417
+ }
418
+
419
+ //----------------------------------------------------------------------------
420
+ // Code to handle the menus and sub menus.
421
+ //----------------------------------------------------------------------------
422
+
423
+ function menuMouseover(event) {
424
+
425
+ var menu;
426
+
427
+ // Find the target menu element.
428
+
429
+ if (browser.isIE)
430
+ menu = getContainerWith(window.event.srcElement, "DIV", "menu");
431
+ else
432
+ menu = event.currentTarget;
433
+
434
+ // Close any active sub menu.
435
+
436
+ if (menu.activeItem != null)
437
+ closeSubMenu(menu);
438
+ }
439
+
440
+ function menuItemMouseover(event, menuId) {
441
+ var item, menu, x, y;
442
+
443
+ // Find the target item element and its parent menu element.
444
+ if (browser.isIE)
445
+ item = getContainerWith(window.event.srcElement, "A", "menuItem");
446
+ else
447
+ item = event.currentTarget;
448
+ menu = getContainerWith(item, "DIV", "menu");
449
+
450
+ // Close any active sub menu and mark this one as active.
451
+ if (menu.activeItem != null)
452
+ closeSubMenu(menu);
453
+ menu.activeItem = item;
454
+
455
+ // Highlight the item element.
456
+ item.className += " menuItemHighlight";
457
+
458
+ // Initialize the sub menu, if not already done.
459
+ if (item.subMenu == null) {
460
+ item.subMenu = document.getElementById(menuId);
461
+ if (item.subMenu.isInitialized == null)
462
+ menuInit(item.subMenu);
463
+ }
464
+
465
+ // Set mouseout event handler for the sub menu, if not already done.
466
+ if (item.subMenu.onmouseout == null)
467
+ item.subMenu.onmouseout = buttonOrMenuMouseout;
468
+
469
+ // Get position for submenu based on the menu item.
470
+ x = getPageOffsetLeft(item) + item.offsetWidth;
471
+ y = getPageOffsetTop(item);
472
+
473
+ // Adjust position to fit in view.
474
+ var maxX, maxY;
475
+ if (browser.isIE) {
476
+ maxX = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) +
477
+ (document.documentElement.clientWidth != 0 ? document.documentElement.clientWidth : document.body.clientWidth);
478
+ maxY = Math.max(document.documentElement.scrollTop, document.body.scrollTop) +
479
+ (document.documentElement.clientHeight != 0 ? document.documentElement.clientHeight : document.body.clientHeight);
480
+ }
481
+ if (browser.isOP) {
482
+ maxX = document.documentElement.scrollLeft + window.innerWidth;
483
+ maxY = document.documentElement.scrollTop + window.innerHeight;
484
+ }
485
+ if (browser.isNS) {
486
+ maxX = window.scrollX + window.innerWidth;
487
+ maxY = window.scrollY + window.innerHeight;
488
+ }
489
+ maxX -= item.subMenu.offsetWidth;
490
+ maxY -= item.subMenu.offsetHeight;
491
+
492
+ if (x &gt; maxX)
493
+ x = Math.max(0, x - item.offsetWidth - item.subMenu.offsetWidth
494
+ + (menu.offsetWidth - item.offsetWidth));
495
+ y = Math.max(0, Math.min(y, maxY));
496
+
497
+ // Position and show the sub menu.
498
+ item.subMenu.style.left = x + "px";
499
+ item.subMenu.style.top = y + "px";
500
+ item.subMenu.style.visibility = "visible";
501
+
502
+ // For IE; size, position and display the menu's IFRAME as well.
503
+ if (item.subMenu.iframeEl != null)
504
+ {
505
+ item.subMenu.iframeEl.style.left = item.subMenu.style.left;
506
+ item.subMenu.iframeEl.style.top = item.subMenu.style.top;
507
+ item.subMenu.iframeEl.style.width = item.subMenu.offsetWidth + "px";
508
+ item.subMenu.iframeEl.style.height = item.subMenu.offsetHeight + "px";
509
+ item.subMenu.iframeEl.style.display = "";
510
+ }
511
+
512
+ // Stop the event from bubbling.
513
+ if (browser.isIE)
514
+ window.event.cancelBubble = true;
515
+ else
516
+ event.stopPropagation();
517
+ }
518
+
519
+ function closeSubMenu(menu) {
520
+ if (menu == null || menu.activeItem == null)
521
+ return;
522
+
523
+ // Recursively close any sub menus.
524
+ if (menu.activeItem.subMenu != null) {
525
+ closeSubMenu(menu.activeItem.subMenu);
526
+ menu.activeItem.subMenu.style.visibility = "hidden";
527
+
528
+ // For IE, hide the sub menu's IFRAME as well.
529
+ if (menu.activeItem.subMenu.iframeEl != null)
530
+ menu.activeItem.subMenu.iframeEl.style.display = "none";
531
+
532
+ menu.activeItem.subMenu = null;
533
+ }
534
+
535
+ // Deactivate the active menu item.
536
+ removeClassName(menu.activeItem, "menuItemHighlight");
537
+ menu.activeItem = null;
538
+ }
539
+
540
+ // event on buttons and menus.
541
+ function buttonOrMenuMouseout(event) {
542
+ var el;
543
+
544
+ // If there is no active button, exit.
545
+ if (activeButton == null)
546
+ return;
547
+
548
+ // Find the element the mouse is moving to.
549
+ if (browser.isIE)
550
+ el = window.event.toElement;
551
+ else if (event.relatedTarget != null)
552
+ el = (event.relatedTarget.tagName ? event.relatedTarget : event.relatedTarget.parentNode);
553
+
554
+ // If the element is not part of a menu, reset the active button.
555
+ if (getContainerWith(el, "DIV", "menu") == null) {
556
+ resetButton(activeButton);
557
+ activeButton = null;
558
+ }
559
+ }
560
+
561
+ //----------------------------------------------------------------------------
562
+ // Code to initialize menus.
563
+ //----------------------------------------------------------------------------
564
+ function menuInit(menu) {
565
+ var itemList, spanList;
566
+ var textEl, arrowEl;
567
+ var itemWidth;
568
+ var w, dw;
569
+ var i, j;
570
+
571
+ // For IE, replace arrow characters.
572
+ if (browser.isIE) {
573
+ menu.style.lineHeight = "2.5ex";
574
+ spanList = menu.getElementsByTagName("SPAN");
575
+ for (i = 0; i &lt; spanList.length; i++)
576
+ if (hasClassName(spanList[i], "menuItemArrow")) {
577
+ spanList[i].style.fontFamily = "Webdings";
578
+ spanList[i].firstChild.nodeValue = "4";
579
+ }
580
+ }
581
+
582
+ // Find the width of a menu item.
583
+ itemList = menu.getElementsByTagName("A");
584
+ if (itemList.length &gt; 0)
585
+ itemWidth = itemList[0].offsetWidth;
586
+ else
587
+ return;
588
+
589
+ // For items with arrows, add padding to item text to make the
590
+ // arrows flush right.
591
+ for (i = 0; i &lt; itemList.length; i++) {
592
+ spanList = itemList[i].getElementsByTagName("SPAN");
593
+ textEl = null;
594
+ arrowEl = null;
595
+ for (j = 0; j &lt; spanList.length; j++) {
596
+ if (hasClassName(spanList[j], "menuItemText"))
597
+ textEl = spanList[j];
598
+ if (hasClassName(spanList[j], "menuItemArrow"))
599
+ arrowEl = spanList[j];
600
+ }
601
+ if (textEl != null &amp;&amp; arrowEl != null) {
602
+ textEl.style.paddingRight = (itemWidth
603
+ - (textEl.offsetWidth + arrowEl.offsetWidth)) + "px";
604
+ // For Opera, remove the negative right margin to fix a display bug.
605
+ if (browser.isOP)
606
+ arrowEl.style.marginRight = "0px";
607
+ }
608
+ }
609
+
610
+ // Fix IE hover problem by setting an explicit width on first item of
611
+ // the menu.
612
+ if (browser.isIE) {
613
+ w = itemList[0].offsetWidth;
614
+ itemList[0].style.width = w + "px";
615
+ dw = itemList[0].offsetWidth - w;
616
+ w -= dw;
617
+ itemList[0].style.width = w + "px";
618
+ }
619
+
620
+ // Fix the IE display problem (SELECT elements and other windowed controls
621
+ // overlaying the menu) by adding an IFRAME under the menu.
622
+ if (browser.isIE) {
623
+ var iframeEl = document.createElement("IFRAME");
624
+ iframeEl.frameBorder = 0;
625
+ iframeEl.src = "javascript:;";
626
+ iframeEl.style.display = "none";
627
+ iframeEl.style.position = "absolute";
628
+ //iframeEl.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
629
+ menu.iframeEl = menu.parentNode.insertBefore(iframeEl, menu);
630
+ }
631
+
632
+ // Mark menu as initialized.
633
+ menu.isInitialized = true;
634
+ }
635
+
636
+ //----------------------------------------------------------------------------
637
+ // General utility functions.
638
+ //----------------------------------------------------------------------------
639
+ function getContainerWith(node, tagName, className) {
640
+ // Starting with the given node, find the nearest containing element
641
+ // with the specified tag name and style class.
642
+ while (node != null) {
643
+ if (node.tagName != null &amp;&amp; node.tagName == tagName &amp;&amp;
644
+ hasClassName(node, className))
645
+ return node;
646
+ node = node.parentNode;
647
+ }
648
+ return node;
649
+ }
650
+
651
+ function hasClassName(el, name) {
652
+ var i, list;
653
+ // Return true if the given element currently has the given class
654
+ // name.
655
+ list = el.className.split(" ");
656
+ for (i = 0; i &lt; list.length; i++)
657
+ if (list[i] == name)
658
+ return true;
659
+ return false;
660
+ }
661
+
662
+ function removeClassName(el, name) {
663
+ var i, curList, newList;
664
+ if (el.className == null)
665
+ return;
666
+
667
+ // Remove the given class name from the element's className property.
668
+ newList = new Array();
669
+ curList = el.className.split(" ");
670
+ for (i = 0; i &lt; curList.length; i++)
671
+ if (curList[i] != name)
672
+ newList.push(curList[i]);
673
+ el.className = newList.join(" ");
674
+ }
675
+
676
+ function getPageOffsetLeft(el) {
677
+ var x;
678
+ // Return the x coordinate of an element relative to the page.
679
+ x = el.offsetLeft;
680
+ if (el.offsetParent != null)
681
+ x += getPageOffsetLeft(el.offsetParent);
682
+ return x;
683
+ }
684
+
685
+ function getPageOffsetTop(el) {
686
+ var y;
687
+ // Return the x coordinate of an element relative to the page.
688
+ y = el.offsetTop;
689
+ if (el.offsetParent != null)
690
+ y += getPageOffsetTop(el.offsetParent);
691
+ return y;
692
+ }
693
+ //]]&gt;</script>
694
+ <style type="text/css">
695
+
696
+ div.menuBar,
697
+ div.menuBar a.menuButton,
698
+ div.menu,
699
+ div.menu a.menuItem {
700
+ font-family: Arial, "MS Sans Serif", sans-serif;
701
+ font-size: 10pt;
702
+ font-style: normal;
703
+ font-weight: normal;
704
+ color: #0066cc;
705
+ text-align: left;
706
+ }
707
+
708
+ div.menuBar {
709
+ background-color: #0066cc;
710
+ /*border: 2px outset #e0e0e0;*/
711
+ border: 0px;
712
+ border: 2px solid;
713
+ border-color: #0066cc #0066cc #0066cc #0066cc;
714
+ padding: 4px 2px 4px 2px;
715
+ text-align: left;
716
+ top: 0px;
717
+ left: 0px;
718
+ }
719
+
720
+ div.menuBar a.menuButton {
721
+ background-color: transparent;
722
+ border: 1px solid #0066cc;
723
+ color: #ffffff;
724
+ cursor: default;
725
+ left: 0px;
726
+ margin: 1px;
727
+ padding: 2px 6px 2px 6px;
728
+ position: relative;
729
+ text-decoration: none;
730
+ text-align: left;
731
+ top: 0px;
732
+ z-index: 100;
733
+ }
734
+ div.menuBar a.menuLink {
735
+ background-color: transparent;
736
+ font-family: Arial, "MS Sans Serif", sans-serif;
737
+ font-size: 10pt;
738
+ font-style: normal;
739
+ font-weight: normal;
740
+ color: #ffffff;
741
+ text-align: right;
742
+ text-decoration: none;
743
+ margin: 1px;
744
+ padding: 2px 6px 2px 6px;
745
+ /*width: 150px;*/
746
+ }
747
+
748
+ div.menuBar a.menuLink:hover {
749
+ background-color: 000080;
750
+ border: 1px outset #e0e0e0;
751
+ text-align:left;
752
+ color: #ffffff;
753
+ cursor: default;
754
+ }
755
+
756
+ div.menuBar a.menuButton:hover {
757
+ background-color: 000080;
758
+ border: 1px outset #e0e0e0;
759
+ text-align:left;
760
+ color: #ffffff;
761
+ }
762
+
763
+ div.menuBar a.menuButtonActive,
764
+ div.menuBar a.menuButtonActive:hover {
765
+ background-color: #0066cc;
766
+ /*border: 1px inset #e0e0e0;*/
767
+ color: #ffffff;
768
+ /*left: 1px;*/
769
+ /*top: 1px;*/
770
+ text-align: left;
771
+ }
772
+
773
+ div.menu {
774
+ background-color: #0066cc;
775
+ /*border: 2px outset #e0e0e0;*/
776
+ left: 0px;
777
+ padding: 0px 1px 1px 0px;
778
+ position: absolute;
779
+ top: 28px;
780
+ visibility: hidden;
781
+ z-index: 101;
782
+ text-align: left;
783
+ }
784
+
785
+ div.menu a.menuItem {
786
+ color: #ffffff;
787
+ cursor: default;
788
+ display: block;
789
+ padding: 3px 1em;
790
+ text-decoration: none;
791
+ text-align: left;
792
+ white-space: nowrap;
793
+ }
794
+
795
+ div.menu a.menuItem:hover, div.menu a.menuItemHighlight {
796
+ background-color: #000080;
797
+ color: #ffffff;
798
+ text-align: left;
799
+ }
800
+
801
+ div.menu a.menuItem span.menuItemText {}
802
+
803
+ div.menu a.menuItem span.menuItemArrow {
804
+ margin-right: -.75em;
805
+ }
806
+
807
+ div.menu div.menuItemSep {
808
+ border: 1px inset #e0e0e0;
809
+ margin: 4px 2px;
810
+ }
811
+ </style>
812
+
813
+ <meta content="text/html; charset=windows-1252" http-equiv="Content-Type"><meta content="NO-CACHE" http-equiv="PRAGMA"><meta content="0" http-equiv="EXPIRES"><title>EnRoute I-STATUS</title></head><body onload="ClearSortCookie(); SendRequest();" onunload="ClearTimer()"><div style="position: relative;" class="menuBar"><a onmouseover="buttonMouseover(event, 'FireMenu');" class="menuButton">Fire</a><a onmouseover="buttonMouseover(event, 'AdminMenu');" class="menuButton">Admin</a><a target="_top" href="UserLogin.php" onclick="LogOffClicked(&quot;UserKey&quot;)" class="menuButton">Logoff</a><span style="width: 150px;">&nbsp;</span><a href="#" onclick="ToggleMode()" onmouseover="" class="menuLink">Night Mode</a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "<img style="position: absolute; top: -3px;" src="I-STATUS1.gif"></div><div onmouseover="menuMouseover(event)" class="menu" id="AmbMenu"></div><div onmouseover="menuMouseover(event)" class="menu" id="FireMenu"><a target="Top" href="Dispatch_center.php" class="menuItem">Active Fire/EMS Calls</a> <a target="Top" href="TruckStatus.php" class="menuItem">Apparatus</a> <a target="Top" href="SearchDStats.php" class="menuItem">Fire/EMS History</a> <a target="Top" href="ChgQuarters.php" class="menuItem">Coverage/Quarters</a> <a target="Top" href="FireRestricts.php" class="menuItem">Restrictions</a> </div><div onmouseover="menuMouseover(event)" class="menu" id="PoliceMenu"></div><div onmouseover="menuMouseover(event)" class="menu" id="AdminMenu"><a target="Top" href="UserPasswordMaint.php" class="menuItem">Change Password</a></div><script language="javascript">
814
+ function popup(URL) {
815
+ opts="'toolbar=0, scrollbars=0, location=0, menubar=0, resizable=0, width=160,"
816
+ opts=opts + "height=200, top=60, left=60'"
817
+ mywindow=window.open(URL, "newwin",opts);
818
+ if (mywindow.opener == null)
819
+ mywindow.opener=self;
820
+ }
821
+ function LogOffClicked(CN)
822
+ {
823
+ var cookiename=CN;
824
+ /*alert("logoff clicked= " + cookiename);
825
+ if (isset($_COOKIE['cookiename'])){
826
+ alert("Cookie is set");
827
+ setcookie ("cookiename", "", time()-60*60*24*100);
828
+ }*/
829
+ DeleteCookie(cookiename);
830
+ }
831
+ function ToggleMode() {
832
+ var cname="NiteMode";
833
+ var mode=ReadCookie(cname);
834
+ if (mode == "") mode="Day";
835
+ if (mode == "Day") {
836
+ var newmode="Nite";
837
+ } else {
838
+ var newmode="Day";
839
+ }
840
+ WriteCookie(cname,newmode,1);
841
+ if (window.parent.frames.length == 0) {
842
+ window.self.location.href=window.self.location.href;
843
+ } else {
844
+ for (i=0; i&lt;window.parent.frames.length; i++)
845
+ window.parent.frames(i).location.href=window.parent.frames(i).location.href;
846
+ }
847
+ }
848
+ </script>
849
+ <script src="JSFuncs.js" language="JavaScript"></script><script language="javascript">
850
+ /// Function to return the value of a given cookie
851
+ function cookieVal(cookieName){
852
+ thisCookie=document.cookie.split("; ");
853
+ var rtnval="";
854
+ for (i=0; i&lt;thisCookie.length; i++){
855
+ if (cookieName == thisCookie[i].split("=")[0]){
856
+ rtnval=thisCookie[i].split("=")[1];
857
+ }
858
+ }
859
+ return rtnval;
860
+ }
861
+ </script>
862
+
863
+
864
+
865
+ <!--<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">-->
866
+
867
+
868
+
869
+
870
+ <link type="text/css" href="DisplayFormat.css" rel="stylesheet">
871
+
872
+ <form name="LEAD">
873
+ <input type="HIDDEN" value="30" name="RefreshInt">
874
+ <h4 id="shead" class="Status">Apparatus Status - Screen 4</h4>
875
+ <center><b>Status Legend:</b>&nbsp;
876
+ <span class="ENR"> ENR</span>&nbsp;
877
+ <span class="ONS"> ONS</span>&nbsp;
878
+ <span class="AVL"> AVL</span>&nbsp;
879
+ <span class="OOS"> OOS</span>&nbsp;
880
+ <span class="OOD"> OOD</span>&nbsp;
881
+ <span class="INC"> INC</span>&nbsp;
882
+ <span class="TRN"> TRN</span>&nbsp;
883
+ <span class="DSP"> DSP</span>&nbsp;
884
+ <span class="ARV"> At Hosp</span>&nbsp;
885
+ <span class="AAS"> AAS</span></center>
886
+
887
+ <div align="center" id="Scrollable" class="ScrollBody" style="height: 96px;"><div style="position: absolute; left: 280.5px;" id="Scrollable2"><span style="position: absolute; top: 0px; left: 235px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=AMBULANCES ">AMBULANCES </a></span><span style="position: absolute; top: 275px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=22 ELLIS FISCHEL ">22 ELLIS FISCHEL </a></span><span style="position: absolute; top: 300px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=23 WOODRAIL CENTER ">23 WOODRAIL CENTER </a></span><span style="position: absolute; top: 325px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=24 ASHLAND ">24 ASHLAND </a></span><span style="position: absolute; top: 250px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=25 MIDWAY ">25 MIDWAY </a></span><span style="position: absolute; top: 275px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=26 ROCHEPORT ">26 ROCHEPORT </a></span><span style="position: absolute; top: 50px; left: 160px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=M111 ">M111 m</a></span><span style="position: absolute; top: 75px; left: 160px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M121 ">M121 </a></span><span style="position: absolute; top: 100px; left: 160px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=M131 ">M131 m</a></span><span style="position: absolute; top: 125px; left: 160px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M141 ">M141 </a></span><span style="position: absolute; top: 50px; left: 460px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=M151 ">M151 m</a></span><span style="position: absolute; top: 50px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=11 VANDIVER ">11 VANDIVER </a></span><span style="position: absolute; top: 75px; left: 460px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M181 ">M181 </a></span><span style="position: absolute; top: 100px; left: 460px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M191 ">M191 </a></span><span style="position: absolute; top: 250px; left: 160px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=M211 ">M211 m</a></span><span style="position: absolute; top: 275px; left: 160px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=M221 ">M221 m</a></span><span style="position: absolute; top: 300px; left: 160px; white-space: nowrap; font-size: x-small;" class="AOS"><a target="Fire" class="AOS" href="ApparatusDetail.php?TruckID=M231 ">M231 m</a></span><span style="position: absolute; top: 325px; left: 160px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=M241 ">M241 m</a></span><span style="position: absolute; top: 250px; left: 455px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M251 ">M251 </a></span><span style="position: absolute; top: 275px; left: 455px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M261 ">M261 </a></span><span style="position: absolute; top: 50px; left: 210px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M112 ">M112 </a></span><span style="position: absolute; top: 100px; left: 210px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M132 ">M132 </a></span><span style="position: absolute; top: 75px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=12 PRATHERSVILLE ">12 PRATHERSVILLE </a></span><span style="position: absolute; top: 50px; left: 510px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M152 ">M152 </a></span><span style="position: absolute; top: 250px; left: 210px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M212 ">M212 m</a></span><span style="position: absolute; top: 325px; left: 210px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M242 ">M242 </a></span><span style="position: absolute; top: 50px; left: 260px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M113 ">M113 m</a></span><span style="position: absolute; top: 250px; left: 260px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M213 ">M213 </a></span><span style="position: absolute; top: 160px; left: 25px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=EMS10 ">EMS10 </a></span><span style="position: absolute; top: 160px; left: 80px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=EMS11 ">EMS11 </a></span><span style="position: absolute; top: 160px; left: 135px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=EMS13 ">EMS13 </a></span><span style="position: absolute; top: 360px; left: 20px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=EMS2 ">EMS2 </a></span><span style="position: absolute; top: 360px; left: 75px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=EMS21 ">EMS21 </a></span><span style="position: absolute; top: 100px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=13 CENTRALIA ">13 CENTRALIA </a></span><span style="position: absolute; top: 360px; left: 130px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=EMS22 ">EMS22 </a></span><span style="position: absolute; top: 360px; left: 185px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=EMS23 ">EMS23 </a></span><span style="position: absolute; top: 360px; left: 240px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=EMS24 ">EMS24 </a></span><span style="position: absolute; top: 160px; left: 230px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=MC115 ">MC115 </a></span><span style="position: absolute; top: 420px; left: 55px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=H1 ">H1 </a></span><span style="position: absolute; top: 420px; left: 145px; white-space: nowrap; font-size: x-small;" class="AVL"><a target="Fire" class="AVL" href="ApparatusDetail.php?TruckID=H2 ">H2 </a></span><span style="position: absolute; top: 420px; left: 240px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=H3 ">H3 </a></span><span style="position: absolute; top: 420px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=Univ: ">Univ: </a></span><span style="position: absolute; top: 420px; left: 100px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=Lake: ">Lake: </a></span><span style="position: absolute; top: 420px; left: 185px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=Sedalia: ">Sedalia: </a></span><span style="position: absolute; top: 125px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=14 STURGEON ">14 STURGEON </a></span><span style="position: absolute; top: 420px; left: 400px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=MD10 ">MD10 </a></span><span style="position: absolute; top: 420px; left: 455px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=MD20 ">MD20 </a></span><span style="position: absolute; top: 420px; left: 510px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=MD21 ">MD21 </a></span><span style="position: absolute; top: 420px; left: 285px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=Medical Directors: ">Medical Directors: </a></span><span style="position: absolute; top: 300px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=27 KOMU ">27 KOMU </a></span><span style="position: absolute; top: 325px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=28 AIRPORT ">28 AIRPORT </a></span><span style="position: absolute; top: 300px; left: 455px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M271 ">M271 </a></span><span style="position: absolute; top: 325px; left: 455px; white-space: nowrap; font-size: x-small;" class="OOS"><a target="Fire" class="OOS" href="ApparatusDetail.php?TruckID=M281 ">M281 </a></span><span style="position: absolute; top: 20px; left: 30px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=BOONE AMBULANCE ">BOONE AMBULANCE </a></span><span style="position: absolute; top: 215px; left: 30px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=UNIVERSITY AMBULANCE">UNIVERSITY AMBULANCE</a></span><span style="position: absolute; top: 50px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=15 BOONE HOSPITAL ">15 BOONE HOSPITAL </a></span><span style="position: absolute; top: 50px; left: 140px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=-- ">-- </a></span><span style="position: absolute; top: 250px; left: 140px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=-- ">-- </a></span><span style="position: absolute; top: 50px; left: 440px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=-- ">-- </a></span><span style="position: absolute; top: 275px; left: 140px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=-- ">-- </a></span><span style="position: absolute; top: 300px; left: 140px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=-- ">-- </a></span><span style="position: absolute; top: 75px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=18 HWY 63 / I70 ">18 HWY 63 / I70 </a></span><span style="position: absolute; top: 100px; left: 315px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=19 HALLSVILLE ">19 HALLSVILLE </a></span><span style="position: absolute; top: 250px; left: 10px; white-space: nowrap; font-size: x-small;" class=""><a target="Fire" class="" href="ApparatusDetail.php?TruckID=21 UNIVERSITY HOSP ">21 UNIVERSITY HOSP </a></span>
888
+ </div></div>
889
+ <!-- <br-->
890
+ <table width="100%" cellspacing="0" cellpadding="1" border="0" align="left">
891
+ <tbody><tr>
892
+ <th>Display Apparatus Screen #
893
+ <a onclick="TruckScreen(1);" href="#"><b><font color="#ff0000">1 </font></b></a>
894
+ <a onclick="TruckScreen(2);" href="#"><b><font color="#ff0000">2 </font></b></a>
895
+ <a onclick="TruckScreen(3);" href="#"><b><font color="#ff0000">3 </font></b></a>
896
+ <a onclick="TruckScreen(4);" href="#"><b><font color="#ff0000">4 </font></b></a>
897
+ <a onclick="TruckScreen(5);" href="#"><b><font color="#ff0000">5 </font></b></a>
898
+ <a onclick="TruckScreen(6);" href="#"><b><font color="#ff0000">6 </font></b></a>
899
+ <a onclick="TruckScreen(7);" href="#"><b><font color="#ff0000">7 </font></b></a>
900
+ <a onclick="TruckScreen(8);" href="#"><b><font color="#ff0000">8 </font></b></a>
901
+ <a onclick="TruckScreen(9);" href="#"><b><font color="#ff0000">9 </font></b></a>
902
+ <a onclick="TruckScreen(10);" href="#"><b><font color="#ff0000">10 </font></b></a>
903
+ <a onclick="TruckScreen(11);" href="#"><b><font color="#ff0000">11 </font></b></a>
904
+ <a onclick="TruckScreen(12);" href="#"><b><font color="#ff0000">12 </font></b></a>
905
+ <a onclick="TruckScreen(13);" href="#"><b><font color="#ff0000">13 </font></b></a>
906
+ <a onclick="TruckScreen(14);" href="#"><b><font color="#ff0000">14 </font></b></a>
907
+ <a onclick="TruckScreen(15);" href="#"><b><font color="#ff0000">15 </font></b></a>
908
+ </th>
909
+ </tr>
910
+ </tbody></table>
911
+ </form>
912
+ <script src="Ajax.js" language="javascript"></script>
913
+ <script language="javascript">
914
+ window.onresize = SetDivSize;
915
+ var instr;
916
+ var fdtacs=cookieVal("FDTacs");
917
+ var fdids=cookieVal("FDIDs");
918
+ var fdgrids=cookieVal("FDGrids");
919
+ var fdnats=cookieVal("FDNats");
920
+ var fddsps=cookieVal("FDDsps");
921
+
922
+ function SetDivSize(){
923
+ //center Scrollable2
924
+ var obj=document.getElementById("Scrollable2");
925
+ obj.style.left=(document.body.clientWidth-540)/2;
926
+
927
+ ht=document.body.clientHeight-d.offsetTop;
928
+ d.style.height=ht-60;
929
+ }
930
+
931
+ function TruckScreen(scrn){
932
+ WriteCookie("TScreen",scrn,"1");
933
+ SendRequest()
934
+ }
935
+ // Create a request for data
936
+ function CreateRequest(){
937
+ try {
938
+ request=new XMLHttpRequest();
939
+ } catch (trymicrosoft) {
940
+ try {
941
+ request = new ActiveXObject("Msxml2.XMLHTTP");
942
+ } catch (othermicrosoft) {
943
+ try {
944
+ request=new ActiveXObject("Microsoft.XMLHTTP");
945
+ } catch (failed) {
946
+ request=null;
947
+ }
948
+ }
949
+ }
950
+ if (request == null) alert("Error creating request object!");
951
+ }
952
+
953
+ // Send request for data to server
954
+ function SendRequest(){
955
+ CreateRequest();
956
+ if (request != null){
957
+ var url="AjaxTS2.php";
958
+ request.open("GET",url,true);
959
+ request.setRequestHeader("Content-Type","text/xml");
960
+ request.onreadystatechange=UpdatePage;
961
+ request.send(null);
962
+ }
963
+ RefreshTimer();
964
+ }
965
+
966
+ // Update page with returned data
967
+ function UpdatePage(){
968
+ rrs=request.readyState;
969
+ if (rrs == 4){
970
+ instr=request.responseText;
971
+ // If the instr contains "UserLogin.php", which means
972
+ // the page has timed out (code is in Global.php).
973
+ if (instr.indexOf("UserLogin.php") != -1) {
974
+ top.location="UserLogin.php";
975
+ }
976
+ BuildTable();
977
+ }
978
+ }
979
+
980
+ function BuildTable(){
981
+ var lctr;
982
+ var outstr = new StringBuffer();
983
+ var usort;
984
+ var leftMargin;
985
+ usort=cookieVal("TScreen");
986
+ if (usort == "") usort=1;
987
+
988
+ // Calculate left margin in order to center Scrollable2
989
+ leftMargin=(document.body.clientWidth-540)/2;
990
+ outstr.append('&lt;div id="Scrollable2" style="position:absolute; left:'+leftMargin+'px;"&gt;');
991
+ outstr.append(instr);
992
+ outstr.append('&lt;/div&gt;');
993
+ h=document.getElementById("shead");
994
+ h.innerHTML="Apparatus Status - Screen "+usort;
995
+ d=document.getElementById("Scrollable");
996
+ d.innerHTML=outstr;
997
+ ht=document.body.clientHeight-d.offsetTop;
998
+ d.style.height=ht-60;
999
+
1000
+ }
1001
+
1002
+ function ClearSortCookie(){
1003
+ WriteCookie("SortFlg","xx","7");
1004
+ }
1005
+ // This function expand or collapse the unit legends
1006
+ function DisplayLegends(id){
1007
+ var ih="";
1008
+ var cname="";
1009
+ var ft="";
1010
+ var fd="";
1011
+ var fg="";
1012
+ var fn="";
1013
+ var dp="";
1014
+
1015
+ switch (id){
1016
+ case "legend":
1017
+ ih="&lt;small&gt;"+"&lt;big&gt;-&lt;/big&gt; &lt;font color=#0066cc&gt;Primary&lt;/font&gt; &amp;nbsp; &amp;nbsp; "
1018
+ +"&lt;big&gt;*&lt;/big&gt; &lt;font color=#0066cc&gt;Two person&lt;/font&gt; &amp;nbsp; &amp;nbsp; "
1019
+ +"+ &lt;font color=#0066cc&gt;Primary and Two person&lt;/font&gt; &amp;nbsp; &amp;nbsp; "
1020
+ +"&lt;b&gt;m&lt;/b&gt; &lt;font color=#0066cc&gt;MDT&lt;/font&gt;"
1021
+ +"&lt;/small&gt;";
1022
+ cname="UnitLegends";
1023
+ break;
1024
+ case "restricts":
1025
+ ih="&lt;small&gt;&lt;font color=#FF0000&gt;";
1026
+ if (ft != ""){
1027
+ ih = ih + "Tacs: " + ft + "&lt;BR&gt;";
1028
+ }
1029
+ if (fd != ""){
1030
+ ih=ih + "FDIDs: "+fd + "&lt;BR&gt;";
1031
+ }
1032
+ if (fg != ""){
1033
+ ih=ih + "Grids: "+ fg + "&lt;BR&gt;";
1034
+ }
1035
+ if (fn != ""){
1036
+ ih=ih + "Natures: "+ fn + "&lt;BR&gt;";
1037
+ }
1038
+ if (dp != ""){
1039
+ ih=ih + "Dispatch: "+ dp + "&lt;BR&gt;";
1040
+ }
1041
+ ih=ih+"&lt;/font&gt;&lt;/small&gt;";
1042
+ cname="FDRestrictions";
1043
+ break;
1044
+ default:
1045
+ ih="";
1046
+ cname="";
1047
+ }
1048
+ if (ih != ""){
1049
+ if (document.getElementById(id).innerHTML == "") {
1050
+ document.getElementById(id).innerHTML=ih;
1051
+ WriteCookie(cname,"1",1);
1052
+ } else {
1053
+ document.getElementById(id).innerHTML="";
1054
+ WriteCookie(cname,"0",1);
1055
+ }
1056
+ }
1057
+ }
1058
+ </script>
1059
+ <script src="JSFuncs.js" language="JavaScript"></script>
1060
+ </body></html>
1061
+ </frame>
1062
+
1063
+ </frameset>
1064
+ <noframes>
1065
+ &lt;BODY &gt;
1066
+ A browser that supports frames is required for this application.
1067
+ &lt;/BODY&gt;
1068
+ </noframes>
1069
+ </html>
1070
+ }
1071
+
1072
+ INCIDENT_HTML = %Q{
1073
+
1074
+ <HTML>
1075
+ <HEAD>
1076
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1077
+ <!--<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">-->
1078
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
1079
+ <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
1080
+ <META HTTP-EQUIV="EXPIRES" CONTENT="0">
1081
+ <TITLE>EnRoute I-STATUS - Version 5.10</TITLE>
1082
+ <LINK REL="stylesheet" HREF="DisplayFormat.css" TYPE="text/css">
1083
+ <script language="javascript">
1084
+ //bring the page to foreground
1085
+ this.focus();
1086
+ </script>
1087
+ </HEAD>
1088
+ <BODY CLASS="Detail" j=l>
1089
+ <H3 class="Status">Prior Fire Incident: 201023687</H3><table cellpadding="0" cellspacing="0" width="100%"><tr width="100%"><td valign="top" width="50%"><table cellpadding="0" cellspacing="0" width="100%"><tr><th class="Detail" align="left" width=$cw>Location</th><td class="Detail" align="left" colspan="3"><a href="SearchDStatsSubmit.php?Address=7750 HIGHWAY AB E-BC">7750 HIGHWAY AB E-BC</a></td></tr><tr><TH CLASS='Detail' align=left width=100px>
1090
+ Building</TH>
1091
+ <TD CLASS='Detail' COLSPAN=3>
1092
+ </TD>
1093
+ </tr><tr><TH CLASS='Detail' align=left width=100px>
1094
+ Nature</TH>
1095
+ <TD CLASS='Detail' COLSPAN=3>
1096
+ 69D9-SML NON DWEL STR FIRE</TD>
1097
+ </tr><tr><TH CLASS='Detail' align=left width=100px>
1098
+ Priority</TH>
1099
+ <TD CLASS='Detail' width=110px>
1100
+ 2</TD>
1101
+ <TH CLASS='Detail' align=left width=100px>
1102
+ Dispatch Code</TH>
1103
+ <TD CLASS='Detail' >
1104
+ BOX </TD>
1105
+ </tr><tr><TH CLASS='Detail' align=left>
1106
+ Grid</TH>
1107
+ <TD CLASS='Detail' width=110px>
1108
+ 34123B </TD>
1109
+ <TH CLASS='Detail' align=left width=100px>
1110
+ Map</TH>
1111
+ <TD CLASS='Detail' >
1112
+ </TD>
1113
+ </tr><tr><TH CLASS='Detail' align=left>
1114
+ Fire Area</TH>
1115
+ <td class="Detail" COLSPAN="3">19-17B </td></tr><tr><TH CLASS='Detail' align=left>
1116
+ Cross1</TH>
1117
+ <td class="Detail" COLSPAN="3">RANGELINE RD S</td></tr><tr><TH CLASS='Detail' align=left>
1118
+ Cross2</TH>
1119
+ <td class="Detail" COLSPAN="3">HIGHWAY 63 S SB</td></tr><tr><th class="Detail" align="left">Hyd1</th><td class="Detail" width=$dw></td><th class="Detail" align="left" width=$cw>Hyd2</th><td class="Detail"></td></tr><tr><td colspan="4"><hr color=navy></td></tr><tr><TH CLASS='Detail' align=left width=100px>
1120
+ Complainant</TH>
1121
+ <TD CLASS='Detail' colspan=3>
1122
+ JEROME</TD>
1123
+ </tr><tr><TH CLASS='Detail' align=left width=100px>
1124
+ Callback</TH>
1125
+ <TD CLASS='Detail' colspan=3>
1126
+ 5734410736</TD>
1127
+ </tr><tr><th class="Detail" align="left" width=$cw>Dispatcher</th><td class="Detail" width=$dw>AMS </td><th class="Detail" align="left" width=$cw>CallTaker</th><td class="Detail">ALL </td></tr><tr><TH CLASS='Detail' align=left width=100px>
1128
+ DispO</TH>
1129
+ <TD CLASS='Detail' >
1130
+ ND</TD>
1131
+ <TH CLASS='Detail' align=left width=100px>
1132
+ Meth. Alarm</TH>
1133
+ <TD CLASS='Detail' >
1134
+ 2 </TD>
1135
+ </tr><tr><td colspan="4"><hr color=navy></td></tr><tr><TH CLASS='Detail' align=left width=100px>
1136
+ Inc Date/Time</TH>
1137
+ <TD CLASS='Detail' colspan=3>
1138
+ 12/19/2010 14:15:05</TD>
1139
+ </tr><tr><TH CLASS='Detail' align=left width=100px>
1140
+ On Scene</TH>
1141
+ <TD CLASS='Detail' colspan=3>
1142
+ 12/19/2010 14:27:09</TD>
1143
+ </tr><tr><TH CLASS='Detail' align=left width=100px>
1144
+ Upgrade</TH>
1145
+ <TD CLASS='Detail' colspan=3>
1146
+ 00:00:00</TD>
1147
+ </tr><tr><TH CLASS='Detail' align=left width=100px>
1148
+ Pat Contact</TH>
1149
+ <TD CLASS='Detail' colspan=3>
1150
+ 01/01/1970 00:00:00</TD>
1151
+ </tr></table></td><td valign="top" align="center" width="50%"><table border="1" bordercolor="#76a5b6" cellpadding="0" cellspacing="0" width="90%"><TR >
1152
+ <TH CLASS='Detail' align=left>
1153
+ Apparatus</TH>
1154
+ <TH CLASS='Detail' align="center">
1155
+ DSP</TH>
1156
+ <TH CLASS='Detail' align="center">
1157
+ ENR</TH>
1158
+ <TH CLASS='Detail' align="center">
1159
+ ONS</TH>
1160
+ <TH CLASS='Detail' align="center">
1161
+ Tran</TH>
1162
+ <TH CLASS='Detail' align="center">
1163
+ OSH</TH>
1164
+ <TH CLASS='Detail' align="center">
1165
+ AVL</TH>
1166
+ </TR>
1167
+ <TR >
1168
+ <TD CLASS='Detail AVL' >
1169
+ E1701 </TD>
1170
+ <TD CLASS='Detail' align="center">
1171
+ 14:16:52</TD>
1172
+ <TD CLASS='Detail' align="center">
1173
+ 14:23:17</TD>
1174
+ <TD CLASS='Detail' align="center">
1175
+ 14:30:36</TD>
1176
+ <TD CLASS='Detail' align="center">
1177
+ 00:00:00</TD>
1178
+ <TD CLASS='Detail' align="center">
1179
+ 00:00:00</TD>
1180
+ <TD CLASS='Detail' align="center">
1181
+ 15:17:49</TD>
1182
+ </TR>
1183
+ <TR >
1184
+ <TD CLASS='Detail AVL' >
1185
+ E1901 </TD>
1186
+ <TD CLASS='Detail' align="center">
1187
+ 14:16:52</TD>
1188
+ <TD CLASS='Detail' align="center">
1189
+ 14:20:30</TD>
1190
+ <TD CLASS='Detail' align="center">
1191
+ 14:27:09</TD>
1192
+ <TD CLASS='Detail' align="center">
1193
+ 00:00:00</TD>
1194
+ <TD CLASS='Detail' align="center">
1195
+ 00:00:00</TD>
1196
+ <TD CLASS='Detail' align="center">
1197
+ 15:20:06</TD>
1198
+ </TR>
1199
+ <TR >
1200
+ <TD CLASS='Detail AVL' >
1201
+ M241 </TD>
1202
+ <TD CLASS='Detail' align="center">
1203
+ 14:16:52</TD>
1204
+ <TD CLASS='Detail' align="center">
1205
+ 14:20:16</TD>
1206
+ <TD CLASS='Detail' align="center">
1207
+ 14:27:51</TD>
1208
+ <TD CLASS='Detail' align="center">
1209
+ 00:00:00</TD>
1210
+ <TD CLASS='Detail' align="center">
1211
+ 00:00:00</TD>
1212
+ <TD CLASS='Detail' align="center">
1213
+ 14:32:56</TD>
1214
+ </TR>
1215
+ <TR >
1216
+ <TD CLASS='Detail AVL' >
1217
+ S1704 </TD>
1218
+ <TD CLASS='Detail' align="center">
1219
+ 14:16:52</TD>
1220
+ <TD CLASS='Detail' align="center">
1221
+ 14:25:25</TD>
1222
+ <TD CLASS='Detail' align="center">
1223
+ 00:00:00</TD>
1224
+ <TD CLASS='Detail' align="center">
1225
+ 00:00:00</TD>
1226
+ <TD CLASS='Detail' align="center">
1227
+ 00:00:00</TD>
1228
+ <TD CLASS='Detail' align="center">
1229
+ 14:33:08</TD>
1230
+ </TR>
1231
+ <TR >
1232
+ <TD CLASS='Detail AVL' >
1233
+ T1702 </TD>
1234
+ <TD CLASS='Detail' align="center">
1235
+ 14:16:52</TD>
1236
+ <TD CLASS='Detail' align="center">
1237
+ 00:00:00</TD>
1238
+ <TD CLASS='Detail' align="center">
1239
+ 00:00:00</TD>
1240
+ <TD CLASS='Detail' align="center">
1241
+ 00:00:00</TD>
1242
+ <TD CLASS='Detail' align="center">
1243
+ 00:00:00</TD>
1244
+ <TD CLASS='Detail' align="center">
1245
+ 14:33:37</TD>
1246
+ </TR>
1247
+ <TR >
1248
+ <TD CLASS='Detail AVL' >
1249
+ T1705 </TD>
1250
+ <TD CLASS='Detail' align="center">
1251
+ 14:16:52</TD>
1252
+ <TD CLASS='Detail' align="center">
1253
+ 14:26:14</TD>
1254
+ <TD CLASS='Detail' align="center">
1255
+ 00:00:00</TD>
1256
+ <TD CLASS='Detail' align="center">
1257
+ 00:00:00</TD>
1258
+ <TD CLASS='Detail' align="center">
1259
+ 00:00:00</TD>
1260
+ <TD CLASS='Detail' align="center">
1261
+ 14:33:29</TD>
1262
+ </TR>
1263
+ <TR >
1264
+ <TD CLASS='Detail AVL' >
1265
+ E1501 </TD>
1266
+ <TD CLASS='Detail' align="center">
1267
+ 14:22:27</TD>
1268
+ <TD CLASS='Detail' align="center">
1269
+ 14:24:20</TD>
1270
+ <TD CLASS='Detail' align="center">
1271
+ 14:28:19</TD>
1272
+ <TD CLASS='Detail' align="center">
1273
+ 00:00:00</TD>
1274
+ <TD CLASS='Detail' align="center">
1275
+ 00:00:00</TD>
1276
+ <TD CLASS='Detail' align="center">
1277
+ 15:09:11</TD>
1278
+ </TR>
1279
+ <TR >
1280
+ <TD CLASS='Detail AVL' >
1281
+ C1515 </TD>
1282
+ <TD CLASS='Detail' align="center">
1283
+ 14:23:49</TD>
1284
+ <TD CLASS='Detail' align="center">
1285
+ 00:00:00</TD>
1286
+ <TD CLASS='Detail' align="center">
1287
+ 14:23:55</TD>
1288
+ <TD CLASS='Detail' align="center">
1289
+ 00:00:00</TD>
1290
+ <TD CLASS='Detail' align="center">
1291
+ 00:00:00</TD>
1292
+ <TD CLASS='Detail' align="center">
1293
+ 15:09:23</TD>
1294
+ </TR>
1295
+ <TR >
1296
+ <TD CLASS='Detail AVL' >
1297
+ C1716 </TD>
1298
+ <TD CLASS='Detail' align="center">
1299
+ 14:24:44</TD>
1300
+ <TD CLASS='Detail' align="center">
1301
+ 14:24:48</TD>
1302
+ <TD CLASS='Detail' align="center">
1303
+ 14:32:09</TD>
1304
+ <TD CLASS='Detail' align="center">
1305
+ 00:00:00</TD>
1306
+ <TD CLASS='Detail' align="center">
1307
+ 00:00:00</TD>
1308
+ <TD CLASS='Detail' align="center">
1309
+ 15:20:47</TD>
1310
+ </TR>
1311
+ </table></td></tr><tr><td colspan="4"><hr color=navy></td></tr><tr><table cellpadding="1" cellspacing="0" width="100%"><tr><th class="Detail" align="left" width=$cw>Notes</th><td class="Detail" colspan=3"><table cellpadding="1" cellspacing="0" width="100%"><TR >
1312
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1313
+ <pre>UNIT TYPE DISPATCH RESPOND ON-SCENE TRANSPORT AT HOSP. AVAILABLE</pre></TD>
1314
+ </TR>
1315
+ <TR >
1316
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1317
+ <pre>------- ---- -------- -------- -------- --------- -------- --------</pre></TD>
1318
+ </TR>
1319
+ <TR >
1320
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1321
+ <pre>E1901 E 14:16:52 14:20:30 14:27:09 15:20:06</pre></TD>
1322
+ </TR>
1323
+ <TR >
1324
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1325
+ <pre>E1701 E 14:16:52 14:23:17 14:30:36 15:17:49</pre></TD>
1326
+ </TR>
1327
+ <TR >
1328
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1329
+ <pre>T1705 T 14:16:52 14:26:14 14:33:29</pre></TD>
1330
+ </TR>
1331
+ <TR >
1332
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1333
+ <pre>T1702 T 14:16:52 14:33:37</pre></TD>
1334
+ </TR>
1335
+ <TR >
1336
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1337
+ <pre>S1704 S 14:16:52 14:25:25 14:33:08</pre></TD>
1338
+ </TR>
1339
+ <TR >
1340
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1341
+ <pre>M241 M 14:16:52 14:20:16 14:27:51 14:32:56</pre></TD>
1342
+ </TR>
1343
+ <TR >
1344
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1345
+ <pre>E1501 E 14:22:27 14:24:20 14:28:19 15:09:11</pre></TD>
1346
+ </TR>
1347
+ <TR >
1348
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1349
+ <pre>C1515 C 14:23:49 14:23:55 15:09:23</pre></TD>
1350
+ </TR>
1351
+ <TR >
1352
+ <td class="Notes" valign="top" align="left">00:00:00 &nbsp;</td><TD CLASS='Notes' >
1353
+ <pre>C1716 C 14:24:44 14:24:48 14:32:09 15:20:47</pre></TD>
1354
+ </TR>
1355
+ <TR >
1356
+ <td class="Notes" valign="top" align="left">14:15:05 &nbsp;</td><TD CLASS='Notes' >
1357
+ Complainant: JEROME, Phone: 5734410736</TD>
1358
+ </TR>
1359
+ <TR >
1360
+ <td class="Notes" valign="top" align="left">14:15:05 &nbsp;</td><TD CLASS='Notes' >
1361
+ Response area: 19-17B</TD>
1362
+ </TR>
1363
+ <TR >
1364
+ <td class="Notes" valign="top" align="left">14:15:06 &nbsp;</td><TD CLASS='Notes' >
1365
+ *CITY: BC-BOONE COUNTY </TD>
1366
+ </TR>
1367
+ <TR >
1368
+ <td class="Notes" valign="top" align="left">14:15:59 &nbsp;</td><TD CLASS='Notes' >
1369
+ ProQAF Determinant Code: 69D6</TD>
1370
+ </TR>
1371
+ <TR >
1372
+ <td class="Notes" valign="top" align="left">14:15:59 &nbsp;</td><TD CLASS='Notes' >
1373
+ ProQAF Structure Fire. Residential</TD>
1374
+ </TR>
1375
+ <TR >
1376
+ <td class="Notes" valign="top" align="left">14:15:59 &nbsp;</td><TD CLASS='Notes' >
1377
+ ProQAF (single).Caller Statement: FIRE.</TD>
1378
+ </TR>
1379
+ <TR >
1380
+ <td class="Notes" valign="top" align="left">14:15:59 &nbsp;</td><TD CLASS='Notes' >
1381
+ Complainant name changed to JEROME in ProQAF</TD>
1382
+ </TR>
1383
+ <TR >
1384
+ <td class="Notes" valign="top" align="left">14:15:59 &nbsp;</td><TD CLASS='Notes' >
1385
+ ProQAF Number: 0010003115</TD>
1386
+ </TR>
1387
+ <TR >
1388
+ <td class="Notes" valign="top" align="left">14:16:50 &nbsp;</td><TD CLASS='Notes' >
1389
+ ProQAF (single).Caller Statement: FIRE. 6.No one</TD>
1390
+ </TR>
1391
+ <TR >
1392
+ <td class="Notes" valign="top" align="left">14:16:50 &nbsp;</td><TD CLASS='Notes' >
1393
+ ProQAF is trapped inside the structure.</TD>
1394
+ </TR>
1395
+ <TR >
1396
+ <td class="Notes" valign="top" align="left">14:16:51 &nbsp;</td><TD CLASS='Notes' >
1397
+ *NOTIFY CFD, CF2-WITT, CF3-MARTIN OF (00000174-160)</TD>
1398
+ </TR>
1399
+ <TR >
1400
+ <td class="Notes" valign="top" align="left">14:16:51 &nbsp;</td><TD CLASS='Notes' >
1401
+ *WORKING STRUCTURE FIRES (00000174-160)</TD>
1402
+ </TR>
1403
+ <TR >
1404
+ <td class="Notes" valign="top" align="left">14:16:52 &nbsp;</td><TD CLASS='Notes' >
1405
+ Fire service incident 201023687 (00000174-160)</TD>
1406
+ </TR>
1407
+ <TR >
1408
+ <td class="Notes" valign="top" align="left">14:17:04 &nbsp;</td><TD CLASS='Notes' >
1409
+ TAC CHANNEL BF1 ASSIGNED (00000174-160)</TD>
1410
+ </TR>
1411
+ <TR >
1412
+ <td class="Notes" valign="top" align="left">14:20:12 &nbsp;</td><TD CLASS='Notes' >
1413
+ OUT BUILDING ONFIRE (00000174-160)</TD>
1414
+ </TR>
1415
+ <TR >
1416
+ <td class="Notes" valign="top" align="left">14:20:16 &nbsp;</td><TD CLASS='Notes' >
1417
+ Unit M241 Pressed Enroute</TD>
1418
+ </TR>
1419
+ <TR >
1420
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1421
+ !***Nature changed via ProQAF From: </TD>
1422
+ </TR>
1423
+ <TR >
1424
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1425
+ !69D6-RES STR FIRE</TD>
1426
+ </TR>
1427
+ <TR >
1428
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1429
+ RCF ProQAF Determinant Code: 69D9</TD>
1430
+ </TR>
1431
+ <TR >
1432
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1433
+ RCF ProQAF Structure Fire. Small NON-DWELLING</TD>
1434
+ </TR>
1435
+ <TR >
1436
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1437
+ RCF ProQAF building/structure (shed, detached</TD>
1438
+ </TR>
1439
+ <TR >
1440
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1441
+ RCF ProQAF garage).Caller Statement: FIR. 6.No</TD>
1442
+ </TR>
1443
+ <TR >
1444
+ <td class="Notes" valign="top" align="left">14:21:02 &nbsp;</td><TD CLASS='Notes' >
1445
+ RCF ProQAF one is trapped inside the structure.</TD>
1446
+ </TR>
1447
+ <TR >
1448
+ <td class="Notes" valign="top" align="left">14:23:28 &nbsp;</td><TD CLASS='Notes' >
1449
+ T1705 TIMER SET TO 5 MINUTE(S) (00000174-160)</TD>
1450
+ </TR>
1451
+ <TR >
1452
+ <td class="Notes" valign="top" align="left">14:23:28 &nbsp;</td><TD CLASS='Notes' >
1453
+ T1702 TIMER SET TO 5 MINUTE(S) (00000174-160)</TD>
1454
+ </TR>
1455
+ <TR >
1456
+ <td class="Notes" valign="top" align="left">14:23:29 &nbsp;</td><TD CLASS='Notes' >
1457
+ S1704 TIMER SET TO 5 MINUTE(S) (00000174-160)</TD>
1458
+ </TR>
1459
+ <TR >
1460
+ <td class="Notes" valign="top" align="left">14:23:55 &nbsp;</td><TD CLASS='Notes' >
1461
+ C1515 went in command 14:23:55 (00000174-160)</TD>
1462
+ </TR>
1463
+ <TR >
1464
+ <td class="Notes" valign="top" align="left">14:24:06 &nbsp;</td><TD CLASS='Notes' >
1465
+ ProQAF garage).Caller Statement: FIR. 6.No one</TD>
1466
+ </TR>
1467
+ <TR >
1468
+ <td class="Notes" valign="top" align="left">14:24:17 &nbsp;</td><TD CLASS='Notes' >
1469
+ *SMALL FIVE BY FIVE OUTSIDE BUILDING (00000174-160)</TD>
1470
+ </TR>
1471
+ <TR >
1472
+ <td class="Notes" valign="top" align="left">14:24:17 &nbsp;</td><TD CLASS='Notes' >
1473
+ *SMOKE SHOWING (00000174-160)</TD>
1474
+ </TR>
1475
+ <TR >
1476
+ <td class="Notes" valign="top" align="left">14:27:51 &nbsp;</td><TD CLASS='Notes' >
1477
+ Unit M241 Pressed On scene</TD>
1478
+ </TR>
1479
+ <TR >
1480
+ <td class="Notes" valign="top" align="left">14:28:04 &nbsp;</td><TD CLASS='Notes' >
1481
+ Tactical channel changed from BF1 to (00000174-160)</TD>
1482
+ </TR>
1483
+ <TR >
1484
+ <td class="Notes" valign="top" align="left">14:28:04 &nbsp;</td><TD CLASS='Notes' >
1485
+ GLD (00000174-160)</TD>
1486
+ </TR>
1487
+ <TR >
1488
+ <td class="Notes" valign="top" align="left">14:28:12 &nbsp;</td><TD CLASS='Notes' >
1489
+ ALL UNITS REPORT TO GOLD (00000174-160)</TD>
1490
+ </TR>
1491
+ <TR >
1492
+ <td class="Notes" valign="top" align="left">14:28:57 &nbsp;</td><TD CLASS='Notes' >
1493
+ T1702 TIMER SET TO 5 MINUTE(S) (00000174-160)</TD>
1494
+ </TR>
1495
+ <TR >
1496
+ <td class="Notes" valign="top" align="left">14:32:49 &nbsp;</td><TD CLASS='Notes' >
1497
+ Mark Inc Under Ctrl updated from: 12/19/10 (00000174-160)</TD>
1498
+ </TR>
1499
+ <TR >
1500
+ <td class="Notes" valign="top" align="left">14:32:50 &nbsp;</td><TD CLASS='Notes' >
1501
+ 14:32:48 (00000174-160)</TD>
1502
+ </TR>
1503
+ <TR >
1504
+ <td class="Notes" valign="top" align="left">14:32:57 &nbsp;</td><TD CLASS='Notes' >
1505
+ Unit M241 Pressed Available</TD>
1506
+ </TR>
1507
+ <TR >
1508
+ <td class="Notes" valign="top" align="left">14:49:22 &nbsp;</td><TD CLASS='Notes' >
1509
+ C1515 TIMER SET TO 20 MINUTE(S) (00000174-160)</TD>
1510
+ </TR>
1511
+ <TR >
1512
+ <td class="Notes" valign="top" align="left">15:09:21 &nbsp;</td><TD CLASS='Notes' >
1513
+ C1515 W/ BCFPD RPRT (00000154-160)</TD>
1514
+ </TR>
1515
+ <TR >
1516
+ <td class="Notes" valign="top" align="left">15:20:15 &nbsp;</td><TD CLASS='Notes' >
1517
+ C1747 W/ SBCFPD RPRT (00000154-160)</TD>
1518
+ </TR>
1519
+ <TR >
1520
+ <td class="Notes" valign="top" align="left">15:20:49 &nbsp;</td><TD CLASS='Notes' >
1521
+ *Fire incident 201023687 closed (00000154-160)</TD>
1522
+ </TR>
1523
+ <TR >
1524
+ <td class="Notes" valign="top" align="left">15:20:49 &nbsp;</td><TD CLASS='Notes' >
1525
+ Report written for FDID 01004 201023687-00</TD>
1526
+ </TR>
1527
+ <TR >
1528
+ <td class="Notes" valign="top" align="left">15:20:49 &nbsp;</td><TD CLASS='Notes' >
1529
+ Report written for FDID 19011 201023687-00</TD>
1530
+ </TR>
1531
+ <TR >
1532
+ <td class="Notes" valign="top" align="left">15:20:49 &nbsp;</td><TD CLASS='Notes' >
1533
+ Report written for FDID 01001 201023687-00</TD>
1534
+ </TR>
1535
+ </table></td></tr></table></tr></table>
1536
+ </BODY>
1537
+ </HTML>
1538
+ <script language="javascript" src="JSFuncs.js"></script>
1539
+ }
1540
+ end