function show_ticket($id, $print = 'false', $search = FALSE) { /* show specified ticket */ global $iw_width, $istest, $zoom_tight, $nature, $disposition, $patient, $incident, $incidents, $col_width; // 12/3/10, 8/4/11 $tickno = get_variable('serial_no_ap') == 0 ? " <I>(#{$id})</I>" : ""; // 1/25/09, 2/18/12 if ($istest) { print "GET<br />\n"; dump($_GET); print "POST<br />\n"; dump($_POST); } if ($id == '' or $id <= 0 or !check_for_rows("SELECT * FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE id='{$id}'")) { /* sanity check */ print "Invalid Ticket ID: '{$id}'<BR />"; return; } // Regions stuff 6/10/11 function get_buttons($user_id) { // 5/3/11 $regs_viewed = ""; if (isset($_SESSION['viewed_groups'])) { $regs_viewed = explode(",", $_SESSION['viewed_groups']); } $query2 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$user_id}' ORDER BY `group`"; // 5/3/11 $result2 = mysql_query($query2) or do_error($query2, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $al_buttons = ""; while ($row2 = stripslashes_deep(mysql_fetch_assoc($result2))) { // 5/3/11 if (!empty($regs_viewed)) { if (in_array($row2['group'], $regs_viewed)) { $al_buttons .= "<DIV style='display: block;'><INPUT TYPE='checkbox' CHECKED name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } else { $al_buttons .= "<DIV style='display: block;'><INPUT TYPE='checkbox' name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } } else { $al_buttons .= "<DIV style='display: block;'><INPUT TYPE='checkbox' CHECKED name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } } // dump($al_buttons); return $al_buttons; } if (get_num_groups() && COUNT(get_allocates(4, $_SESSION['user_id'])) > 1) { // 6/10/11 ?> <SCRIPT> side_bar_html= ""; side_bar_html+="<TABLE><TR class='even'><TD COLSPAN=99 CLASS='td_label' ><form name='region_form' METHOD='post' action='main.php'><DIV>"; side_bar_html += "<?php print get_buttons($_SESSION['user_id']); ?> "; side_bar_html+="</DIV></form></TD></TR><TR><TD> </TD></TR><TR><TD ALIGN='center'><INPUT TYPE='button' VALUE='Update' onClick='form_validate(document.region_form);'></TD></TR></TABLE>"; if($("region_boxes")) { $("region_boxes").innerHTML = side_bar_html; } </SCRIPT> <?php } // End of Regions stuff $restrict_ticket = get_variable('restrict_user_tickets') == 1 && !is_administrator() ? " AND owner={$_SESSION['user_id']}" : ""; // 1/7/10 $query = "SELECT *,\n\t\t`problemstart` AS `my_start`,\n\t\tFROM_UNIXTIME(UNIX_TIMESTAMP(problemstart)) AS `test`,\n\t\tUNIX_TIMESTAMP(problemstart) AS problemstart,\n\t\tUNIX_TIMESTAMP(problemend) AS problemend,\n\t\tUNIX_TIMESTAMP(date) AS date,\n\t\tUNIX_TIMESTAMP(booked_date) AS booked_date,\t\t\n\t\tUNIX_TIMESTAMP(`{$GLOBALS['mysql_prefix']}ticket`.`updated`) AS updated,\t\t\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`description` AS `tick_descr`,\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`street` AS `tick_street`,\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`city` AS `tick_city`,\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`state` AS `tick_state`,\t\t\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`lat` AS `lat`,\t\t\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`lng` AS `lng`,\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`_by` AS `call_taker`,\n\t\t`{$GLOBALS['mysql_prefix']}facilities`.`name` AS `fac_name`,\t\t\n\t\t`rf`.`name` AS `rec_fac_name`,\n\t\t`{$GLOBALS['mysql_prefix']}facilities`.`lat` AS `fac_lat`,\t\t\n\t\t`{$GLOBALS['mysql_prefix']}facilities`.`lng` AS `fac_lng`,\t\t \n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`id` AS `tick_id`\n\t\tFROM `{$GLOBALS['mysql_prefix']}ticket` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}in_types` `ty` ON (`{$GLOBALS['mysql_prefix']}ticket`.`in_types_id` = `ty`.`id`)\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}facilities` ON `{$GLOBALS['mysql_prefix']}facilities`.id = `{$GLOBALS['mysql_prefix']}ticket`.facility \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}facilities` rf ON `rf`.id = `{$GLOBALS['mysql_prefix']}ticket`.rec_facility \n\t\tWHERE `{$GLOBALS['mysql_prefix']}ticket`.`ID`= {$id} {$restrict_ticket}"; // 7/16/09, 8/12/09 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); if (!mysql_num_rows($result)) { //no tickets? print "error" or "restricted user rights" print "<FONT CLASS=\"warn\">Internal error " . basename(__FILE__) . "/" . __LINE__ . ". Notify developers of this message.</FONT>"; // 8/18/09 exit; } $row = stripslashes_deep(mysql_fetch_array($result)); $locale = get_variable('locale'); // 10/29/09 switch ($locale) { case "0": $grid_type = " USNG " . LLtoUSNG($row['lat'], $row['lng']); break; case "1": $grid_type = " OSGB " . LLtoOSGB($row['lat'], $row['lng']); // 8/23/08, 10/15/08, 8/3/09 break; case "2": $coords = $row['lat'] . "," . $row['lng']; // 8/12/09 $grid_type = " UTM " . toUTM($coords); // 8/23/08, 10/15/08, 8/3/09 break; default: print "ERROR in " . basename(__FILE__) . " " . __LINE__ . "<BR />"; } if ($print == 'true') { // 1/7/10 print "<TABLE BORDER='0'ID='left' width='800px'>\n"; // print "<TR CLASS='print_TD'><TD ALIGN='left' CLASS='td_data' COLSPAN=2 ALIGN='center'><B>{$incident}: <I>" . $row['scope'] . "</B>" . $tickno . "</TD></TR>\n"; print "<TR CLASS='print_TD' ><TD ALIGN='left'>" . get_text("Priority") . ":</TD> \n\t\t\t\t\t<TD ALIGN='left'>" . get_severity($row['severity']); print " {$nature}: " . get_type($row['in_types_id']); print "</TD></TR>\n"; print "<TR CLASS='print_TD' ><TD ALIGN='left'>" . get_text("Protocol") . ":</TD> <TD ALIGN='left'>{$row['protocol']}</TD></TR>\n"; // 7/16/09 print "<TR CLASS='print_TD' ><TD ALIGN='left'>" . get_text("Addr") . ":</TD>\t\n\t\t\t\t<TD ALIGN='left'>" . $row['tick_street'] . "</TD></TR>\n"; print "<TR CLASS='print_TD' ><TD ALIGN='left'>" . get_text("City") . ":</TD>\t\t\n\t\t\t\t<TD ALIGN='left'>" . $row['tick_city']; print " " . $row['tick_state'] . "</TD></TR>\n"; print "<TR CLASS='print_TD' VALIGN='top'><TD ALIGN='left'>" . get_text("Synopsis") . ":</TD>\n\t\t\t\t<TD ALIGN='left'>" . nl2br($row['tick_descr']) . "</TD></TR>\n"; // 8/12/09 print "<TR CLASS='print_TD' VALIGN='top'><TD ALIGN='left'>" . get_text("911 Contacted") . ":</TD>\n\t\t\t\t<TD ALIGN='left'>" . nl2br($row['nine_one_one']) . "</TD></TR>\n"; // 8/12/09 $end_date = intval($row['problemend']) > 1 ? $row['problemend'] : time() - intval(get_variable('delta_mins')) * 60; $elapsed = my_date_diff($end_date, $end_date); print "<TR CLASS='print_TD'><TD ALIGN='left'>" . get_text("Status") . ":</TD>\t\n\t\t\t\t<TD ALIGN='left'>" . get_status($row['status']) . " {$elapsed}</TD></TR>\n"; print "<TR CLASS='print_TD'><TD ALIGN='left'>" . get_text("Reported by") . ":</TD>\n\t\t\t\t<TD ALIGN='left'>" . $row['contact'] . "</TD></TR>\n"; print "<TR CLASS='print_TD' ><TD ALIGN='left'>" . get_text("Phone") . ":</TD>\t\t\n\t\t\t\t<TD ALIGN='left'>" . format_phone($row['phone']) . "</TD></TR>\n"; $by_str = $row['call_taker'] == 0 ? "" : " by " . get_owner($row['call_taker']) . " "; // 1/7/10 print "<TR CLASS='print_TD'><TD ALIGN='left'>" . get_text("Written") . ":</TD>\t\n\t\t\t\t<TD ALIGN='left'>" . format_date($row['date']) . $by_str; print " Updated: " . format_date($row['updated']) . "</TD></TR>\n"; print empty($row['booked_date']) ? "" : "<TR CLASS='print_TD'><TD ALIGN='left'>Scheduled date:</TD>\t\n\t\t\t\t<TD ALIGN='left'>" . format_date($row['booked_date']) . "</TD></TR>\n"; // 10/6/09 print "<TR CLASS='print_TD' ><TD ALIGN='left' COLSPAN='2'> \n\t\t\t\t<TD ALIGN='left'></TR>\n"; // separator print empty($row['fac_name']) ? "" : "<TR CLASS='print_TD' ><TD ALIGN='left'>{$incident} at Facility:</TD>\t\n\t\t\t\t<TD ALIGN='left'>" . $row['fac_name'] . "</TD></TR>\n"; // 8/1/09, 3/27/10 print empty($row['rec_fac_name']) ? "" : "<TR CLASS='print_TD' ><TD ALIGN='left'>Receiving Facility:</TD>\t\n\t\t\t\t<TD ALIGN='left'>" . $row['rec_fac_name'] . "</TD></TR>\n"; // 10/6/09 print empty($row['comments']) ? "" : "<TR CLASS='print_TD' VALIGN='top'><TD ALIGN='left'>{$disposition}:</TD>\n\t\t\t\t<TD ALIGN='left'>" . replace_quotes(nl2br($row['comments'])) . "</TD></TR>\n"; print "<TR CLASS='print_TD' ><TD ALIGN='left'>" . get_text("Run Start") . ":</TD>\t\t\t\t\n\t\t\t\t<TD ALIGN='left'>" . format_date($row['problemstart']); $elapsed_str = !empty($closed) ? $elapsed : ""; print " End: " . format_date($row['problemend']) . " {$elapsed_str}</TD></TR>\n"; $locale = get_variable('locale'); // 08/03/09 switch ($locale) { case "0": $grid_type = " USNG " . LLtoUSNG($row['lat'], $row['lng']); break; case "1": $grid_type = " OSGB " . LLtoOSGB($row['lat'], $row['lng']); // 8/23/08, 10/15/08, 8/3/09 break; case "2": $coords = $row['lat'] . "," . $row['lng']; // 8/12/09 $grid_type = " UTM " . toUTM($coords); // 8/23/08, 10/15/08, 8/3/09 break; default: print "ERROR in " . basename(__FILE__) . " " . __LINE__ . "<BR />"; } print "<TR CLASS='print_TD'><TD ALIGN='left' >" . get_text("Position") . ": </TD>\t\t\n\t\t\t\t<TD ALIGN='left'>" . get_lat($row['lat']) . " " . get_lng($row['lng']) . $grid_type . "</TD></TR>\n"; // 9/13/08 print "<TR><TD colspan=2 ALIGN='left'>"; print show_log($row[0]); // log print "</TD></TR>"; print "<TR STYLE = 'display:none;'><TD colspan=2><SPAN ID='oldlat'>" . $row['lat'] . "</SPAN><SPAN ID='oldlng'>" . $row['lng'] . "</SPAN></TD></TR>"; print "</TABLE>\n"; print show_actions($row['tick_id'], "date", FALSE, FALSE); // lists actions and patient data, print - 10/30/09 // =============== 10/30/09 function my_to_date($in_date) { // date_time format to user's spec // $temp = mktime(substr($in_date,11,2),substr($in_date,14,2),substr($in_date,17,2),substr($in_date,5,2),substr($in_date,8,2),substr($in_date,0,4)); $temp = mysql2timestamp($d1); // 9/29/10 return good_date_time($in_date) ? date(get_variable("date_format"), $temp) : ""; // } /* $query = "SELECT * FROM `$GLOBALS[mysql_prefix]assigns` WHERE `facility_id` IS NOT NULL LIMIT 1"; $result_temp = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $facilities = mysql_affected_rows()>0; // set boolean in order to avoid waste space $query = "SELECT * FROM `$GLOBALS[mysql_prefix]assigns` WHERE `start_miles` IS NOT NULL LIMIT 1"; $result_temp = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $miles = mysql_affected_rows()>0; // set boolean in order to avoid waste space unset($result_temp); $query = "SELECT *, UNIX_TIMESTAMP(as_of) AS as_of, `$GLOBALS[mysql_prefix]assigns`.`id` AS `assign_id` , `$GLOBALS[mysql_prefix]assigns`.`comments` AS `assign_comments`, `u`.`user` AS `theuser`, `t`.`scope` AS `theticket`, `t`.`description` AS `thetickdescr`, `t`.`status` AS `thestatus`, `t`.`_by` AS `call_taker`, `r`.`id` AS `theunitid`, `r`.`name` AS `theunit` , `f`.`name` AS `thefacility`, `g`.`name` AS `the_rec_facility`, `$GLOBALS[mysql_prefix]assigns`.`as_of` AS `assign_as_of` FROM `$GLOBALS[mysql_prefix]assigns` LEFT JOIN `$GLOBALS[mysql_prefix]ticket` `t` ON (`$GLOBALS[mysql_prefix]assigns`.`ticket_id` = `t`.`id`) LEFT JOIN `$GLOBALS[mysql_prefix]user` `u` ON (`$GLOBALS[mysql_prefix]assigns`.`user_id` = `u`.`id`) LEFT JOIN `$GLOBALS[mysql_prefix]responder` `r` ON (`$GLOBALS[mysql_prefix]assigns`.`responder_id` = `r`.`id`) LEFT JOIN `$GLOBALS[mysql_prefix]facilities` `f` ON (`$GLOBALS[mysql_prefix]assigns`.`facility_id` = `f`.`id`) LEFT JOIN `$GLOBALS[mysql_prefix]facilities` `g` ON (`$GLOBALS[mysql_prefix]assigns`.`rec_facility_id` = `g`.`id`) WHERE `$GLOBALS[mysql_prefix]assigns`.`ticket_id` = $id ORDER BY `theunit` ASC "; // 5/25/09, 1/16/08 $asgn_result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); if (mysql_affected_rows()>0) { print "<P><TABLE CLASS='print_TD' BORDER = 1 CELLPADDING = 2 STYLE = 'border-collapse: collapse;'>\n"; print "<TR><TH>Unit</TH><TH>D</TH><TH>R</TH><TH>E</TH>"; print ($facilities)? "<TH>FE</TH><TH>FA</TH>": ""; print "<TH>C</TH>"; print ($miles)? "<TH>M/S</TH><TH>M/OS/E</TH>": ""; print "</TR>"; while ( $asgn_row = stripslashes_deep(mysql_fetch_array($asgn_result))){ print "<TR>"; print "<TD>" . shorten($asgn_row['theunit'], 24) . "</TD>"; print "<TD>" . my_to_date($asgn_row['dispatched']) . "</TD>"; print "<TD>" . my_to_date($asgn_row['responding']) . "</TD>"; print "<TD>" . my_to_date($asgn_row['on_scene']) . "</TD>"; print ($facilities)? "<TD>" . my_to_date($asgn_row['u2fenr']) . "</TD>": ""; print ($facilities)? "<TD>" . my_to_date($asgn_row['u2farr']) . "</TD>": ""; print "<TD>" . my_to_date($asgn_row['clear']) . "</TD>"; print ($miles)? "<TD>" . my_to_date($asgn_row['start_miles']) . "</TD>": ""; print ($miles)? "<TD>" . my_to_date($asgn_row['on_scene_miles']) . "</TD>": ""; // 12/9/10 print ($miles)? "<TD>" . my_to_date($asgn_row['end_miles']) . "</TD>": ""; print "</TR>\n"; } // end while () $asgn_row = ... print "</TABLE>\n"; } // end if (mysql_affected_rows()>0 */ // ============== print "\n</BODY>\n</HTML>"; return; } // end if ($print == 'true') ?> <TABLE BORDER="0" ID = "outer" ALIGN="left"> <TR VALIGN="top"><TD CLASS="print_TD" ALIGN="left"> <?php print do_ticket($row, $col_width, $search); // 2/25/09 print show_actions($row['id'], "date", FALSE, TRUE); /* lists actions and patient data belonging to ticket */ print "<TD ALIGN='left'>"; print "<TABLE ID='theMap' BORDER=0><TR CLASS='odd' ><TD ALIGN='center'>\n\t\t<DIV ID='map' STYLE='WIDTH:" . get_variable('map_width') . "px; HEIGHT: " . get_variable('map_height') . "PX'></DIV>\n\t\t<BR />\n\t\t<SPAN ID='grid_id' onClick='doGrid()'><U>Grid</U></SPAN>\n\t\t<SPAN ID='do_sv' onClick = 'sv_win(document.sv_form)' STYLE = 'margin-left: 20px' ><u>Street view</U></SPAN>"; print $zoom_tight ? "<SPAN onClick= 'zoom_in({$row['lat']}, {$row['lng']}, {$zoom_tight});' STYLE = 'margin-left:20px'><U>Zoom</U></SPAN>\n" : ""; // 3/27/10 print "</TD></TR>"; // 11/29/08 print "<FORM NAME='sv_form' METHOD='post' ACTION=''><INPUT TYPE='hidden' NAME='frm_lat' VALUE=" . $row['lat'] . ">"; // 2/11/09 print "<INPUT TYPE='hidden' NAME='frm_lng' VALUE=" . $row['lng'] . "></FORM>"; print "<TR ID='pointl1' CLASS='print_TD' STYLE = 'display:none;'>\n\t\t<TD ALIGN='center'><B>Range:</B> <SPAN ID='range'></SPAN> <B>Brng</B>: \n\t\t\t<SPAN ID='brng'></SPAN></TD></TR>\n\n\t\t<TR ID='pointl2' CLASS='print_TD' STYLE = 'display:none;'>\n\t\t\t<TD ALIGN='center'><B>Lat:</B> <SPAN ID='newlat'></SPAN>\n\t\t\t <B>Lng:</B> <SPAN ID='newlng'></SPAN> <B>NGS:</B> <SPAN ID = 'newusng'></SPAN></TD></TR>\n\n\t\t<TR><TD ALIGN='center'><BR /><FONT SIZE='-1'>Click map point for distance information.</FONT></TD></TR>\n"; print "</TABLE>\n"; print "</TD></TR>"; print "<TR CLASS='odd' ><TD COLSPAN='2' CLASS='print_TD'>"; $lat = $row['lat']; $lng = $row['lng']; print show_actions($row['id'], "date", FALSE, TRUE); /* lists actions and patient data belonging to ticket */ print "</TD></TR>\n"; // print "<TR><TD ALIGN='left'>"; // print show_log ($id); // log as a table // print "</TD></TR></TABLE>\n"; print "</TABLE>\n"; ?> <SCRIPT SRC='../js/usng.js' TYPE='text/javascript'></SCRIPT> <SCRIPT SRC="../js/graticule.js" type="text/javascript"></SCRIPT> <SCRIPT> function isNull(val) { // checks var stuff = null; return val === null; } var starting = false; function sv_win(theForm) { // 2/11/09 if(starting) {return;} // dbl-click proof starting = true; var thelat = theForm.frm_lat.value; var thelng = theForm.frm_lng.value; var url = "street_view.php?thelat=" + thelat + "&thelng=" + thelng; newwindow_sl=window.open(url, "sta_log", "titlebar=no, location=0, resizable=1, scrollbars, height=450,width=640,status=0,toolbar=0,menubar=0,location=0, left=100,top=300,screenX=100,screenY=300"); if (!(newwindow_sl)) { alert ("Street view operation requires popups to be enabled. Please adjust your browser options - or else turn off the Call Board option."); return; } newwindow_sl.focus(); starting = false; } // end function sv win() var the_grid; var grid = false; function doGrid() { if (grid) { map.removeOverlay(the_grid); grid = false; } else { the_grid = new LatLonGraticule(); map.addOverlay(the_grid); grid = true; } } function zoom_in (in_lat, in_lng, in_zoom) { // 3/27/10 map.setCenter(new GLatLng(in_lat, in_lng), in_zoom ); var marker = new GMarker(map.getCenter()); // marker to map center var myIcon = new GIcon(); myIcon.image = "./markers/sm_red.png"; map.addOverlay(marker, myIcon); } // end function zoom in () String.prototype.trim = function () { // 9/14/08 return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"); }; String.prototype.parseDeg = function() { if (!isNaN(this)) return Number(this); // signed decimal degrees without NSEW var degLL = this.replace(/^-/,'').replace(/[NSEW]/i,''); // strip off any sign or compass dir'n var dms = degLL.split(/[^0-9.,]+/); // split out separate d/m/s for (var i in dms) if (dms[i]=='') dms.splice(i,1); // remove empty elements (see note below) switch (dms.length) { // convert to decimal degrees... case 3: // interpret 3-part result as d/m/s var deg = dms[0]/1 + dms[1]/60 + dms[2]/3600; break; case 2: // interpret 2-part result as d/m var deg = dms[0]/1 + dms[1]/60; break; case 1: // decimal or non-separated dddmmss if (/[NS]/i.test(this)) degLL = '0' + degLL; // - normalise N/S to 3-digit degrees var deg = dms[0].slice(0,3)/1 + dms[0].slice(3,5)/60 + dms[0].slice(5)/3600; break; default: return NaN; } if (/^-/.test(this) || /[WS]/i.test(this)) deg = -deg; // take '-', west and south as -ve return deg; } Number.prototype.toRad = function() { // convert degrees to radians return this * Math.PI / 180; } Number.prototype.toDeg = function() { // convert radians to degrees (signed) return this * 180 / Math.PI; } Number.prototype.toBrng = function() { // convert radians to degrees (as bearing: 0...360) return (this.toDeg()+360) % 360; } function brng(lat1, lon1, lat2, lon2) { lat1 = lat1.toRad(); lat2 = lat2.toRad(); var dLon = (lon2-lon1).toRad(); var y = Math.sin(dLon) * Math.cos(lat2); var x = Math.cos(lat1)*Math.sin(lat2) - Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); return Math.atan2(y, x).toBrng(); } distCosineLaw = function(lat1, lon1, lat2, lon2) { var R = 6371; // earth's mean radius in km var d = Math.acos(Math.sin(lat1.toRad())*Math.sin(lat2.toRad()) + Math.cos(lat1.toRad())*Math.cos(lat2.toRad())*Math.cos((lon2-lon1).toRad())) * R; return d; } var km2feet = 3280.83; var thisMarker = false; var map; var icons=[]; // note globals - 1/29/09 icons[<?php print $GLOBALS['SEVERITY_NORMAL']; ?> ] = "./our_icons/blue.png"; // normal icons[<?php print $GLOBALS['SEVERITY_MEDIUM']; ?> ] = "./our_icons/green.png"; // green icons[<?php print $GLOBALS['SEVERITY_HIGH']; ?> ] = "./our_icons/red.png"; // red icons[<?php print $GLOBALS['SEVERITY_HIGH']; ?> +1] = "./our_icons/white.png"; // white - not in use var baseIcon = new GIcon(); baseIcon.shadow = "./markers/sm_shadow.png"; baseIcon.iconSize = new GSize(20, 34); // baseIcon.shadowSize = new GSize(37, 34); baseIcon.iconAnchor = new GPoint(9, 34); baseIcon.infoWindowAnchor = new GPoint(9, 2); // baseIcon.infoShadowAnchor = new GPoint(18, 25); map = new GMap2($("map")); // create the map <?php $maptype = get_variable('maptype'); // 08/02/09 switch ($maptype) { case "1": break; case "2": ?> map.setMapType(G_SATELLITE_MAP); <?php break; case "3": ?> map.setMapType(G_PHYSICAL_MAP); <?php break; case "4": ?> map.setMapType(G_HYBRID_MAP); <?php break; default: print "ERROR in " . basename(__FILE__) . " " . __LINE__ . "<BR />"; } ?> // map.addControl(new GSmallMapControl()); map.setUIToDefault(); // 8/13/10 map.addControl(new GMapTypeControl()); map.addControl(new GOverviewMapControl()); // 12/24/08 <?php if (get_variable('terrain') == 1) { ?> map.addMapType(G_PHYSICAL_MAP); <?php } if ($lat == 0.999999 && $lng == 0.999999) { // check for facilities entered in no maps mode 7/28/10 ?> map.setCenter(new GLatLng(<?php print get_variable('def_lat'); ?> , <?php print get_variable('def_lng'); ?> ),14); var icon = new GIcon(baseIcon); var icon_url = "./our_icons/question1.png"; // 7/28/10 icon.image = icon_url; var point = new GLatLng(<?php print get_variable('def_lat'); ?> , <?php print get_variable('def_lng'); ?> ); // 1147 map.addOverlay(new GMarker(point, icon)); map.enableScrollWheelZoom(); <?php } else { ?> map.setCenter(new GLatLng(<?php print $lat; ?> , <?php print $lng; ?> ),14); var icon = new GIcon(baseIcon); icon.image = icons[<?php print $row['severity']; ?> ]; var point = new GLatLng(<?php print $lat; ?> , <?php print $lng; ?> ); // 1147 map.addOverlay(new GMarker(point, icon)); map.enableScrollWheelZoom(); <?php } ?> // ====================================Add Responding Units to Map 8/1/09================================================ var icons=[]; icons[1] = "./our_icons/white.png"; // normal icons[2] = "./our_icons/black.png"; // green var baseIcon = new GIcon(); baseIcon.shadow = "./markers/sm_shadow.png"; baseIcon.iconSize = new GSize(20, 34); baseIcon.iconAnchor = new GPoint(9, 34); baseIcon.infoWindowAnchor = new GPoint(9, 2); var unit_icon = new GIcon(baseIcon); unit_icon.image = icons[1]; function createMarker(unit_point, number) { // Show this markers index in the info window when clicked var unit_marker = new GMarker(unit_point, unit_icon); var html = number; GEvent.addListener(unit_marker, "click", function() {unit_marker.openInfoWindowHtml(html);}); return unit_marker; } <?php $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` WHERE ticket_id='{$id}'"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row = mysql_fetch_array($result)) { $responder_id = $row['responder_id']; if ($row['clear'] == NULL) { $query_unit = "SELECT * FROM `{$GLOBALS['mysql_prefix']}responder` WHERE id='{$responder_id}'"; $result_unit = mysql_query($query_unit) or do_error($query_unit, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_unit = mysql_fetch_array($result_unit)) { $unit_id = $row_unit['id']; $mobile = $row_unit['mobile']; if (my_is_float($row_unit['lat']) && my_is_float($row_unit['lng'])) { if ($mobile == 1) { echo "var unit_icon = new GIcon(baseIcon);\n"; echo "var unit_icon_url = \"./our_icons/gen_icon.php?blank=0&text=RU\";\n"; echo "unit_icon.image = unit_icon_url;\n"; echo "var unit_point = new GLatLng(" . $row_unit['lat'] . "," . $row_unit['lng'] . ");\n"; echo "var unit_marker = createMarker(unit_point, '" . addslashes($row_unit['name']) . "', unit_icon);\n"; echo "map.addOverlay(unit_marker);\n"; echo "\n"; } else { echo "var unit_icon = new GIcon(baseIcon);\n"; echo "var unit_icon_url = \"./our_icons/gen_icon.php?blank=4&text=RU\";\n"; echo "unit_icon.image = unit_icon_url;\n"; echo "var unit_point = new GLatLng(" . $row_unit['lat'] . "," . $row_unit['lng'] . ");\n"; echo "var unit_marker = createMarker(unit_point, '" . addslashes($row_unit['name']) . "', unit_icon);\n"; echo "map.addOverlay(unit_marker);\n"; echo "\n"; } // end inner if } // end middle if } // end outer if } // end inner while } // end outer while // =====================================End of functions to show responding units======================================================================== // ====================================Add Facilities to Map 8/1/09================================================ ?> var icons=[]; var g=0; var fmarkers = []; var baseIcon = new GIcon(); baseIcon.shadow = "./markers/sm_shadow.png"; baseIcon.iconSize = new GSize(30, 30); baseIcon.iconAnchor = new GPoint(15, 30); baseIcon.infoWindowAnchor = new GPoint(9, 2); var fac_icon = new GIcon(baseIcon); fac_icon.image = icons[1]; function createfacMarker(fac_point, fac_name, id, fac_icon) { var fac_marker = new GMarker(fac_point, fac_icon); // Show this markers index in the info window when it is clicked var fac_html = fac_name; fmarkers[id] = fac_marker; GEvent.addListener(fac_marker, "click", function() {fac_marker.openInfoWindowHtml(fac_html);}); return fac_marker; } <?php $query_fac = "SELECT *,UNIX_TIMESTAMP(updated) AS updated, `{$GLOBALS['mysql_prefix']}facilities`.id AS fac_id, `{$GLOBALS['mysql_prefix']}facilities`.description AS facility_description, `{$GLOBALS['mysql_prefix']}fac_types`.name AS fac_type_name, `{$GLOBALS['mysql_prefix']}facilities`.name AS facility_name FROM `{$GLOBALS['mysql_prefix']}facilities` LEFT JOIN `{$GLOBALS['mysql_prefix']}fac_types` ON `{$GLOBALS['mysql_prefix']}facilities`.type = `{$GLOBALS['mysql_prefix']}fac_types`.id LEFT JOIN `{$GLOBALS['mysql_prefix']}fac_status` ON `{$GLOBALS['mysql_prefix']}facilities`.status_id = `{$GLOBALS['mysql_prefix']}fac_status`.id ORDER BY `{$GLOBALS['mysql_prefix']}facilities`.type ASC"; $result_fac = mysql_query($query_fac) or do_error($query_fac, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_fac = mysql_fetch_array($result_fac)) { $eols = array("\r\n", "\n", "\r"); // all flavors of eol while ($row_fac = mysql_fetch_array($result_fac)) { $fac_name = $row_fac['facility_name']; // 10/8/09 $fac_temp = explode("/", $fac_name); $fac_index = substr($fac_temp[count($fac_temp) - 1], -6, strlen($fac_temp[count($fac_temp) - 1])); // 3/19/11 print "\t\tvar fac_sym = '{$fac_index}';\n"; // for sidebar and icon 10/8/09 $fac_id = $row_fac['id']; $fac_type = $row_fac['icon']; $f_disp_name = $row_fac['facility_name']; // 10/8/09 $f_disp_temp = explode("/", $f_disp_name); $facility_display_name = $f_disp_temp[0]; if (my_is_float($row_fac['lat']) && my_is_float($row_fac['lng'])) { $fac_tab_1 = "<TABLE CLASS='infowin' width='{$iw_width}' >"; $fac_tab_1 .= "<TR CLASS='even'><TD COLSPAN=2 ALIGN='center'><B>" . addslashes(shorten($facility_display_name, 48)) . "</B></TD></TR>"; $fac_tab_1 .= "<TR CLASS='odd'><TD COLSPAN=2 ALIGN='center'><B>" . addslashes(shorten($row_fac['fac_type_name'], 48)) . "</B></TD></TR>"; $fac_tab_1 .= "<TR CLASS='even'><TD ALIGN='right'>Description: </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row_fac['facility_description'])) . "</TD></TR>"; $fac_tab_1 .= "<TR CLASS='odd'><TD ALIGN='right'>Status: </TD><TD ALIGN='left'>" . addslashes($row_fac['status_val']) . " </TD></TR>"; $fac_tab_1 .= "<TR CLASS='even'><TD ALIGN='right'>Contact: </TD><TD ALIGN='left'>" . addslashes($row_fac['contact_name']) . " Email: " . addslashes($row_fac['contact_email']) . "</TD></TR>"; $fac_tab_1 .= "<TR CLASS='odd'><TD ALIGN='right'>Phone: </TD><TD ALIGN='left'>" . addslashes($row_fac['contact_phone']) . " </TD></TR>"; $fac_tab_1 .= "<TR CLASS='even'><TD ALIGN='right'>As of: </TD><TD ALIGN='left'>" . format_date($row_fac['updated']) . "</TD></TR>"; $fac_tab_1 .= "</TABLE>"; $fac_tab_2 = "<TABLE CLASS='infowin' width='{$iw_width}' >"; $fac_tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Security contact: </TD><TD ALIGN='left'>" . addslashes($row_fac['security_contact']) . " </TD></TR>"; $fac_tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Security email: </TD><TD ALIGN='left'>" . addslashes($row_fac['security_email']) . " </TD></TR>"; $fac_tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Security phone: </TD><TD ALIGN='left'>" . addslashes($row_fac['security_phone']) . " </TD></TR>"; $fac_tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Access rules: </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row_fac['access_rules'])) . "</TD></TR>"; $fac_tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Security reqs: </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row_fac['security_reqs'])) . "</TD></TR>"; $fac_tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Opening hours: </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row_fac['opening_hours'])) . "</TD></TR>"; $fac_tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Prim pager: </TD><TD ALIGN='left'>" . addslashes($row_fac['pager_p']) . " </TD></TR>"; $fac_tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Sec pager: </TD><TD ALIGN='left'>" . addslashes($row_fac['pager_s']) . " </TD></TR>"; $fac_tab_2 .= "</TABLE>"; ?> var myfacinfoTabs = [ new GInfoWindowTab("<?php print nl2brr(addslashes(shorten($row_fac['facility_name'], 10))); ?> ", "<?php print $fac_tab_1; ?> "), new GInfoWindowTab("More ...", "<?php print str_replace($eols, " ", $fac_tab_2); ?> ") ]; <?php echo "var fac_icon = new GIcon(baseIcon);\n"; echo "var fac_type = {$fac_type};\n"; ?> var origin = ((fac_sym.length)>3)? (fac_sym.length)-3: 0; // pick low-order three chars 3/22/11 var iconStr = fac_sym.substring(origin); <?php echo "var fac_icon_url = \"./our_icons/gen_fac_icon.php?blank={$fac_type}&text=\" + (iconStr) + \"\";\n"; echo "fac_icon.image = fac_icon_url;\n"; echo "var fac_point = new GLatLng(" . $row_fac['lat'] . "," . $row_fac['lng'] . ");\n"; echo "var fac_marker = createfacMarker(fac_point, myfacinfoTabs, g, fac_icon);\n"; echo "map.addOverlay(fac_marker);\n"; echo "\n"; } // end if my_is_float ?> g++; <?php } // end while } // ============================== End of functions to show facilities ======================================= // $street = empty($row['ticket_street'])? "" : $row['ticket_street'] . "<BR/>" . $row['ticket_city'] . " " . $row['ticket_state'] ; 2/21/09 // $tab_1 = "<TABLE CLASS='infowin' width='{$iw_width}' >"; // $tab_1 .= "<TR CLASS='even'><TD COLSPAN=2 ALIGN='center'><B>" . shorten($row['scope'], 48) . "</B></TD></TR>"; // $tab_1 .= "<TR CLASS='odd'><TD>As of:</TD><TD>" . format_date($row['updated']) . "</TD></TR>"; // $tab_1 .= "<TR CLASS='even'><TD>Reported by:</TD><TD>" . shorten($row['contact'], 32) . "</TD></TR>"; // $tab_1 .= "<TR CLASS='odd'><TD>Phone:</TD><TD>" . format_phone ($row['phone']) . "</TD></TR>"; // $tab_1 .= "<TR CLASS='even'><TD>Addr:</TD><TD>" . $street . " </TD></TR>"; // $tab_1 .= "</TABLE>"; // 11/6/08 do_kml(); // kml functions ?> // map.openInfoWindowHtml(point, "<?php // print $tab_1; ?> "); GEvent.addListener(map, "click", function(marker, point) { if (point) { var baseIcon = new GIcon(); baseIcon.iconSize=new GSize(32,32); baseIcon.iconAnchor=new GPoint(16,16); var cross = new GIcon(baseIcon, "./markers/crosshair.png", null); // 10/13/08 map.clearOverlays(); var thisMarker = new GMarker(point, cross); map.addOverlay(thisMarker); $("newlat").innerHTML = point.lat().toFixed(6); $("newlng").innerHTML = point.lng().toFixed(6); var nlat = $("newlat").innerHTML ; var nlng = $("newlng").innerHTML ; var olat = $("oldlat").innerHTML ; var olng = $("oldlng").innerHTML ; var km=distCosineLaw(parseFloat(olat), parseFloat(olng), parseFloat(nlat), parseFloat(nlng)); var dist = ((km * km2feet).toFixed(0)).toString(); var dist1 = dist/5280; var dist2 = (dist>5280)? ((dist/5280).toFixed(2) + " mi") : dist + " ft" ; $("range").innerHTML = dist2; $("brng").innerHTML = (brng (parseFloat(olat), parseFloat(olng), parseFloat(nlat), parseFloat(nlng)).toFixed(0)) + ' degr'; $("newusng").innerHTML= LLtoUSNG(nlat, nlng, 5); $("pointl1").style.display = "block"; $("pointl2").style.display = "block"; var point = new GLatLng(<?php print $lat; ?> , <?php print $lng; ?> ); // 1196 map.addOverlay(new GMarker(point, icon)); var polyline = new GPolyline([ new GLatLng(nlat, nlng), new GLatLng(olat, olng) ], "#FF0000", 2); map.addOverlay(polyline); } } ) function lat2ddm(inlat) { // 9/7/08 var x = new Number(inlat); var y = (inlat>0)? Math.floor(x):Math.round(x); var z = ((Math.abs(x-y)*60).toFixed(1)); var nors = (inlat>0.0)? " N":" S"; return Math.abs(y) + '\260 ' + z +"'" + nors; } function lng2ddm(inlng) { var x = new Number(inlng); var y = (inlng>0)? Math.floor(x):Math.round(x); var z = ((Math.abs(x-y)*60).toFixed(1)); var eorw = (inlng>0.0)? " E":" W"; return Math.abs(y) + '\260 ' + z +"'" + eorw; } function do_coords(inlat, inlng) { //9/14/08 if(inlat.toString().length==0) return; // 10/15/08 var str = inlat + ", " + inlng + "\n"; str += ll2dms(inlat) + ", " +ll2dms(inlng) + "\n"; str += lat2ddm(inlat) + ", " +lng2ddm(inlng); alert(str); } function ll2dms(inval) { // lat/lng to degr, mins, sec's - 9/9/08 var d = new Number(inval); d = (inval>0)? Math.floor(d):Math.round(d); var mi = (inval-d)*60; var m = Math.floor(mi) // min's var si = (mi-m)*60; var s = si.toFixed(1); return d + '\260 ' + Math.abs(m) +"' " + Math.abs(s) + '"'; } </SCRIPT> <?php }
$al_buttons = ""; while ($row2 = stripslashes_deep(mysql_fetch_assoc($result2))) { // 5/3/11 if (!empty($regs_viewed)) { if (in_array($row2['group'], $regs_viewed)) { $al_buttons .= "<DIV style='float: left; width: 100%; text-align: left;'><INPUT TYPE='checkbox' CHECKED name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } else { $al_buttons .= "<DIV style='float: left; width: 100%; text-align: left;'><INPUT TYPE='checkbox' name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } } else { $al_buttons .= "<DIV style='float: left; width: 100%; text-align: left;'><INPUT TYPE='checkbox' CHECKED name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } } return $al_buttons; } if (get_num_groups() && COUNT(get_allocates(4, $_SESSION['user_id'])) > 1) { // 6/10/11 ?> <SCRIPT> side_bar_html= ""; side_bar_html+="<TABLE><TR class='heading_2'><TH ALIGN='center' COLSPAN=99>Viewed <?php print get_text("Regions"); ?> </TH></TR><TR class='even'><TD CLASS='td_label'><form name='region_form' METHOD='post' action='#'><DIV>"; side_bar_html += "<?php print get_buttons($_SESSION['user_id']); ?> "; side_bar_html+="</DIV></form></TD></TR><TR><TD COLSPAN=99> </TD></TR><TR><TD ALIGN='center' COLSPAN=99><INPUT TYPE='button' VALUE='Update' onClick='form_validate(document.region_form);'></TD></TR></TABLE>"; $("region_boxes").innerHTML = side_bar_html; </SCRIPT>
function list_facilities($addon = '', $start) { // global {$_SESSION['fip']}, $fmp, {$_SESSION['editfile']}, {$_SESSION['addfile']}, {$_SESSION['unitsfile']}, {$_SESSION['facilitiesfile']}, {$_SESSION['routesfile']}, {$_SESSION['facroutesfile']}; global $iw_width, $u_types, $tolerance; // $assigns = array(); // $tickets = array(); $query = "SELECT `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`, `{$GLOBALS['mysql_prefix']}assigns`.`responder_id`, `{$GLOBALS['mysql_prefix']}ticket`.`scope` AS `ticket` FROM `{$GLOBALS['mysql_prefix']}assigns` LEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` ON `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`=`{$GLOBALS['mysql_prefix']}ticket`.`id`"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_as = stripslashes_deep(mysql_fetch_assoc($result_as))) { $assigns[$row_as['responder_id']] = $row_as['ticket']; $tickets[$row_as['responder_id']] = $row_as['ticket_id']; } unset($result_as); $calls = array(); $calls_nr = array(); $calls_time = array(); $query = "SELECT * , UNIX_TIMESTAMP(packet_date) AS `packet_date` FROM `{$GLOBALS['mysql_prefix']}tracks` ORDER BY `packet_date` ASC"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), __FILE__, __LINE__); while ($row = mysql_fetch_assoc($result)) { if (isset($calls[$row['source']])) { // array_key_exists ( mixed key, array search ) $calls_nr[$row['source']]++; } else { array_push($calls, trim($row['source'])); $calls[trim($row['source'])] = TRUE; $calls_nr[$row['source']] = 1; } $calls_time[$row['source']] = $row['packet_date']; // save latest - note query order } $query = "SELECT `id` FROM `{$GLOBALS['mysql_prefix']}facilities`"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), __FILE__, __LINE__); $facilities = mysql_affected_rows() > 0 ? mysql_affected_rows() : "<I>none</I>"; unset($result); ?> <SCRIPT > var color=0; var colors = new Array ('odd', 'even'); function hideDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = 'none'; $(hide_cont).style.display = 'none'; $(show_cont).style.display = ''; } var params = "f_n=" +controlarea+ "&v_n=h&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function showDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = ''; $(hide_cont).style.display = ''; $(show_cont).style.display = 'none'; } var params = "f_n=" +controlarea+ "&v_n=s&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function hideGroup(color) { for (var i = 0; i < gmarkers.length; i++) { if (gmarkers[i]) { if (gmarkers[i].id == color) { gmarkers[i].show(); } else { gmarkers[i].hide(); } } // end if (gmarkers[i]) } // end for () elem = $("allIcons"); elem.style.visibility = "visible"; } // end function function showAll() { for (var i = 0; i < gmarkers.length; i++) { if (gmarkers[i]) { gmarkers[i].show(); } } // end for () elem = $("allIcons"); elem.style.visibility = "hidden"; } // end function function checkArray(form, arrayName) { // 5/3/11 var retval = new Array(); for(var i=0; i < form.elements.length; i++) { var el = form.elements[i]; if(el.type == "checkbox" && el.name == arrayName && el.checked) { retval.push(el.value); } } return retval; } function checkForm(form) { // 6/10/11 var errmsg=""; var itemsChecked = checkArray(form, "frm_group[]"); if(itemsChecked.length > 0) { var params = "f_n=viewed_groups&v_n=" +itemsChecked+ "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // 3/15/11 var url = "persist3.php"; // 3/15/11 sendRequest (url, fvg_handleResult, params); // form.submit(); } else { errmsg+= "\tYou cannot Hide all the regions\n"; if (errmsg!="") { alert ("Please correct the following and re-submit:\n\n" + errmsg); return false; } } } function fvg_handleResult(req) { // 6/10/11 The persist callback function for viewed groups. document.region_form.submit(); } function form_validate(theForm) { // 5/3/11 // alert("Validating"); checkForm(theForm); } // end function validate(theForm) function sendRequest(url,callback,postData) { // 2/14/09 var req = createXMLHTTPObject(); if (!req) return; var method = (postData) ? "POST" : "GET"; req.open(method,url,true); req.setRequestHeader('User-Agent','XMLHTTP/1.0'); if (postData) req.setRequestHeader('Content-type','application/x-www-form-urlencoded'); req.onreadystatechange = function () { if (req.readyState != 4) return; if (req.status != 200 && req.status != 304) { return; } callback(req); } if (req.readyState == 4) return; req.send(postData); } var XMLHttpFactories = [ function () {return new XMLHttpRequest() }, function () {return new ActiveXObject("Msxml2.XMLHTTP") }, function () {return new ActiveXObject("Msxml3.XMLHTTP") }, function () {return new ActiveXObject("Microsoft.XMLHTTP") } ]; function createXMLHTTPObject() { var xmlhttp = false; for (var i=0;i<XMLHttpFactories.length;i++) { try { xmlhttp = XMLHttpFactories[i](); } catch (e) { continue; } break; } return xmlhttp; } function createMarker(point, tabs, color, id, fac_id) { // (point, myinfoTabs,<?php print $row['type']; ?> , i) points = true; // at least one // var letter = to_str(id); var fac_id = fac_id; var icon = new GIcon(listIcon); var icon_url = "./our_icons/gen_fac_icon.php?blank=" + escape(icons[color]) + "&text=" + fac_id; icon.image = icon_url; // var marker = new GMarker(point, icon); marker.id = color; // for hide/unhide - unused GEvent.addListener(marker, "click", function() { // here for both side bar and icon click if (marker) { map.closeInfoWindow(); which = id; gmarkers[which].hide(); marker.openInfoWindowTabsHtml(infoTabs[id]); setTimeout(function() { // wait for rendering complete if ($("detailmap")) { var dMapDiv = $("detailmap"); var detailmap = new GMap2(dMapDiv); detailmap.addControl(new GSmallMapControl()); detailmap.setCenter(point, 17); // larger # = closer detailmap.addOverlay(marker); } else { } },4000); // end setTimeout(...) } // end if (marker) }); // end GEvent.add Listener() gmarkers[id] = marker; // marker to array for side_bar click function infoTabs[id] = tabs; // tabs to array if (!(map_is_fixed)) { bounds.extend(point); } return marker; } // end function create Marker() function createdummyMarker(point, tabs, color, id, fac_id) { // 7/28/10 points = true; // at least one // var letter = to_str(id); var fac_id = fac_id; var icon = new GIcon(listIcon); var icon_url = "./our_icons/question1.png"; icon.image = icon_url; // var dummymarker = new GMarker(point, icon); dummymarker.id = color; // for hide/unhide - unused GEvent.addListener(dummymarker, "click", function() { // here for both side bar and icon click if (dummymarker) { map.closeInfoWindow(); which = id; gmarkers[which].hide(); dummymarker.openInfoWindowTabsHtml(infoTabs[id]); setTimeout(function() { // wait for rendering complete if ($("detailmap")) { var dMapDiv = $("detailmap"); var detailmap = new GMap2(dMapDiv); detailmap.addControl(new GSmallMapControl()); detailmap.setCenter(point, 17); // larger # = closer detailmap.addOverlay(dummymarker); } else { } },4000); // end setTimeout(...) } // end if (marker) }); // end GEvent.add Listener() gmarkers[id] = dummymarker; // marker to array for side_bar click function infoTabs[id] = tabs; // tabs to array if (!(map_is_fixed)) { bounds.extend(point); } return dummymarker; } // end function createdummyMarker() function do_sidebar (sidebar, id, the_class, fac_id) { var fac_id = fac_id; side_bar_html += "<TR CLASS='" + colors[(id)%2] +"'>"; side_bar_html += "<TD CLASS='" + the_class + "' onClick = myclick(" + id + "); >" + fac_id + sidebar +"</TD></TR>\n"; // 3/15/11 } function do_sidebar_nm (sidebar, line_no, id, fac_id) { var fac_id = fac_id; var letter = to_str(line_no); side_bar_html += "<TR CLASS='" + colors[(line_no)%2] +"'>"; side_bar_html += "<TD onClick = myclick_nm(" + id + "); >" + fac_id + sidebar +"</TD></TR>\n"; // 1/23/09, 10/29/09 removed period, 11/11/09, 3/15/11 } function myclick_nm(v_id) { // Responds to sidebar click - view responder data document.view_form.id.value=v_id; document.view_form.submit(); } function myclick(id) { // Responds to sidebar click, then triggers listener above - note [id] GEvent.trigger(gmarkers[id], "click"); location.href = '#top'; // 11/11/090 } function do_lat (lat) { document.forms[0].frm_lat.value=lat.toFixed(6); } function do_lng (lng) { document.forms[0].frm_lng.value=lng.toFixed(6); } function do_ngs() { // LL to USNG var loc = <?php print get_variable('locale'); ?> ; document.forms[0].frm_ngs.disabled=false; if(loc == 0) { document.forms[0].frm_ngs.value = LLtoUSNG(document.forms[0].frm_lat.value, document.forms[0].frm_lng.value, 5); } if(loc == 1) { document.forms[0].frm_ngs.value = LLtoOSGB(document.forms[0].frm_lat.value, document.forms[0].frm_lng.value); } if(loc == 2) { document.forms[0].frm_ngs.value = LLtoOSGB(document.forms[0].frm_lat.value, document.forms[0].frm_lng.value); } document.forms[0].frm_ngs.disabled=true; } function do_sel_update_fac (in_unit, in_val) { // 3/15/11 to_server_fac(in_unit, in_val); } function to_server_fac(the_unit, the_status) { // 3/15/11 var querystr = "frm_responder_id=" + the_unit; querystr += "&frm_status_id=" + the_status; var url = "as_up_fac_status.php?" + querystr; // 3/15/11 var payload = syncAjax(url); // if (payload.substring(0,1)=="-") { alert ("<?php print __LINE__; ?> : msg failed "); return false; } else { parent.frames['upper'].show_msg ('Facility status update applied!') return true; } // end if/else (payload.substring(... ) } // end function to_server() var icons=new Array; // maps type to icon blank <?php $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}fac_types` ORDER BY `id`"; // types in use $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $icons = $GLOBALS['fac_icons']; while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // map type to blank icon id $blank = $icons[$row['icon']]; print "\ticons[" . $row['id'] . "] = " . $row['icon'] . ";\n"; // } unset($result); $dzf = get_variable('def_zoom_fixed'); print "\tvar map_is_fixed = "; print my_is_int($dzf) && $dzf == 2 || my_is_int($dzf) && $dzf == 3 ? "true;\n" : "false;\n"; ?> var map; var side_bar_html = "<TABLE border=0 CLASS='sidebar' ID='tbl_facilities'>"; side_bar_html += "<TR class='even'> <TD><B>Icon</B></TD><TD><B>Handle</B></TD><TD ALIGN='left'><B>Name</B></TD><TD ALIGN='left'><B><?php print get_text("Type"); ?> </B></TD><TD ALIGN='left'><B><?php print get_text("Status"); ?> </B></TD><TD ALIGN='left'><B><?php print get_text("As of"); ?> </B></TD></TR>"; var gmarkers = []; var infoTabs = []; var which; var i = <?php print $start; ?> ; // sidebar/icon index var points = false; // none map = new GMap2($("map")); // create the map <?php $maptype = get_variable('maptype'); switch ($maptype) { case "1": break; case "2": ?> map.setMapType(G_SATELLITE_MAP);<?php break; case "3": ?> map.setMapType(G_PHYSICAL_MAP);<?php break; case "4": ?> map.setMapType(G_HYBRID_MAP);<?php break; default: print "ERROR in " . basename(__FILE__) . " " . __LINE__ . "<BR />"; } ?> // map.addControl(new GSmallMapControl()); map.setUIToDefault(); // 8/13/10 map.addControl(new GMapTypeControl()); <?php if (get_variable('terrain') == 1) { ?> map.addMapType(G_PHYSICAL_MAP); <?php } ?> map.setCenter(new GLatLng(<?php echo get_variable('def_lat'); ?> , <?php echo get_variable('def_lng'); ?> ), <?php echo get_variable('def_zoom'); ?> ); mapBounds=new GLatLngBounds(map.getBounds().getSouthWest(), map.getBounds().getNorthEast()); var bounds = new GLatLngBounds(); // create bounding box map.enableScrollWheelZoom(); do_landb(); // 8/1/11 - show scribbles var listIcon = new GIcon(); listIcon.image = "./markers/yellow.png"; // yellow.png - 16 X 28 listIcon.shadow = "./markers/sm_shadow.png"; listIcon.iconSize = new GSize(30, 30); listIcon.shadowSize = new GSize(16, 28); listIcon.iconAnchor = new GPoint(8, 28); listIcon.infoWindowAnchor = new GPoint(9, 2); listIcon.infoShadowAnchor = new GPoint(18, 25); GEvent.addListener(map, "infowindowclose", function() { // re-center after move/zoom map.addOverlay(gmarkers[which]) }); //-----------------------BOUNDARIES STUFF--------------------6/10/11 var thepoint; var points = new Array(); var boundary = new Array(); var bound_names = new Array(); GEvent.addListener(map, "click", function(overlay,boundpoint) { for (var n = 0; n < boundary.length; n++) { if (boundary[n].Contains(boundpoint)) { map.openInfoWindowHtml(boundpoint,"This is " + bound_names[n]); } } }); <?php $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}' ORDER BY `id` ASC;"; // 6/10/11 $result = mysql_query($query); // 6/10/11 $a_gp_bounds = array(); $gp_bounds = array(); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 6/10/11 $al_groups[] = $row['group']; $query2 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}region` WHERE `id`= '{$row['group']}';"; // 6/10/11 $result2 = mysql_query($query2); // 4/18/11 while ($row2 = stripslashes_deep(mysql_fetch_assoc($result2))) { // // 6/10/11 if ($row2['boundary'] != 0) { $a_gp_bounds[] = $row2['boundary']; } } } if (isset($_SESSION['viewed_groups'])) { // 6/10/11 foreach (explode(",", $_SESSION['viewed_groups']) as $val_vg) { $query3 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}region` WHERE `id`= '{$val_vg}';"; $result3 = mysql_query($query3); // 6/10/11 while ($row3 = stripslashes_deep(mysql_fetch_assoc($result3))) { if ($row3['boundary'] != 0) { $gp_bounds[] = $row3['boundary']; } } } } else { $gp_bounds = $a_gp_bounds; } foreach ($gp_bounds as $value) { // 6/10/11 ?> var points = new Array(); <?php if ($value != 0) { $query_bn = "SELECT * FROM `{$GLOBALS['mysql_prefix']}mmarkup` WHERE `id`='{$value}' AND `use_with_f`=1"; // print $query_bn; $result_bn = mysql_query($query_bn) or do_error($query_bn, mysql_error(), basename(__FILE__), __LINE__); while ($row_bn = stripslashes_deep(mysql_fetch_assoc($result_bn))) { extract($row_bn); $bn_name = $row_bn['line_name']; $points = explode(";", $line_data); for ($xx = 0; $xx < count($points); $xx++) { $coords = explode(",", $points[$xx]); ?> thepoint = new GLatLng(parseFloat(<?php print $coords[0]; ?> ), parseFloat(<?php print $coords[1]; ?> )); points.push(thepoint); <?php } // end for ($i = 0 ... ) ?> <?php switch ($row_bn['line_type']) { case "p": // poly if (intval($filled) == 1) { // 6/10/11 ?> var polyline = new GPolygon(points, "<?php print $line_color; ?> ", <?php print $line_width; ?> , <?php print $line_opacity; ?> , "<?php print $fill_color; ?> ", <?php print $fill_opacity; ?> , {clickable:false}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } else { ?> var polyline = new GPolyline(points, "<?php print $line_color; ?> ", <?php print $line_width; ?> , <?php print $line_opacity; ?> , , 0, {clickable:false}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } ?> map.addOverlay(polyline); <?php break; case "c": $temp = explode(";", $line_data); $radius = $temp[1]; $coords = explode(",", $temp[0]); $lat = $coords[0]; $lng = $coords[1]; $fill_opacity = intval($filled) == 0 ? 0 : $fill_opacity; echo "\n drawCircle({$lat}, {$lng}, {$radius}, add_hash('{$line_color}'), {$line_opacity}, {$line_width}, add_hash('{$fill_color}'), {$fill_opacity}); // 513\n"; break; } } // End while } // end if $value !=0 } // end foreach $gp_bounds //-------------------------END OF BOUNDARIES STUFF------------------------- $eols = array("\r\n", "\n", "\r"); // all flavors of eol $status_vals = array(); // build array of $status_vals $status_vals[''] = $status_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}fac_status` ORDER BY `id`"; $result_st = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_st = stripslashes_deep(mysql_fetch_assoc($result_st))) { $temp = $row_st['id']; $status_vals[$temp] = $row_st['status_val']; } unset($result_st); $type_vals = array(); // build array of $status_vals $type_vals[''] = $type_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}fac_types` ORDER BY `id`"; $result_ty = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_ty = stripslashes_deep(mysql_fetch_assoc($result_ty))) { $temp = $row_ty['id']; $type_vals[$temp] = $row_ty['name']; } unset($result_ty); $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}';"; // 6/10/11 $result = mysql_query($query); // 6/10/11 $al_groups = array(); while ($row_gp = stripslashes_deep(mysql_fetch_assoc($result))) { // 6/10/11 $al_groups[] = $row_gp['group']; } if (isset($_SESSION['viewed_groups'])) { // 6/10/11 $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($al_groups as $grp) { // 6/10/11 $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($curr_viewed as $grp) { // 6/10/11 $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } $where2 .= "AND `a`.`type` = 3"; // 6/10/11 unset($result); // 3/15/11, 6/10/11 $query = "SELECT *,UNIX_TIMESTAMP(updated) AS updated, \n\t\t`f`.id AS id, \n\t\t`f`.status_id AS status_id,\n\t\t`f`.boundary AS boundary,\t\t\n\t\t`f`.description AS facility_description,\n\t\t`t`.name AS fac_type_name, \n\t\t`f`.name AS name,\n\t\t`f`.type AS type,\n\t\t`f`.street AS street,\n\t\t`f`.city AS city,\n\t\t`f`.state AS state \n\t\tFROM `{$GLOBALS['mysql_prefix']}facilities` `f`\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `f`.`id` = a.resource_id )\t\t\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}fac_types` `t` ON `f`.type = `t`.id \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}fac_status` `s` ON `f`.status_id = `s`.id \n\t\t{$where2} GROUP BY `f`.id ORDER BY `f`.type ASC"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_facilities = mysql_affected_rows(); $i = 0; // counter // ============================================================================= $utc = gmdate("U"); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // ========== major while() for Facility ========== $boundary = $row['boundary']; //-----------------------FACILITY BOUNDARIES / CATCHMENT STUFF--------------------6/10/11 ?> var thepoint; var points = new Array(); <?php $query_bn = "SELECT * FROM `{$GLOBALS['mysql_prefix']}mmarkup` WHERE `id`='{$boundary}' AND `use_with_f`=1"; $result_bn = mysql_query($query_bn) or do_error($query_bn, mysql_error(), basename(__FILE__), __LINE__); while ($row_bn = stripslashes_deep(mysql_fetch_assoc($result_bn))) { $the_type = $row_bn['line_type']; switch ($the_type) { case "p": extract($row_bn); $bn_name = $row_bn['line_name']; $points = explode(";", $line_data); for ($i = 0; $i < count($points); $i++) { $coords = explode(",", $points[$i]); ?> thepoint = new GLatLng(parseFloat(<?php print $coords[0]; ?> ), parseFloat(<?php print $coords[1]; ?> )); points.push(thepoint); <?php } // end for ($i = 0 ... ) if (intval($filled) == 1) { // 6/10/11 ?> var polyline = new GPolygon(points, "<?php print $line_color; ?> ", <?php print $line_width; ?> , <?php print $line_opacity; ?> , "<?php print $fill_color; ?> ", <?php print $fill_opacity; ?> , {clickable:false}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } else { ?> var polyline = new GPolyline(points, "<?php print $line_color; ?> ", <?php print $line_width; ?> , <?php print $line_opacity; ?> , , 0, {clickable:false}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } ?> map.addOverlay(polyline); <?php break; case "c": extract($row_bn); $temp = explode(";", $line_data); $radius = $temp[1]; $coords = explode(",", $temp[0]); $lat = $coords[0]; $lng = $coords[1]; $fill_opacity = intval($filled) == 0 ? 0 : $fill_opacity; echo "\n drawCircle({$lat}, {$lng}, {$radius}, add_hash('{$line_color}'), {$line_opacity}, {$line_width}, add_hash('{$fill_color}'), {$fill_opacity}); // 513\n"; break; } // end switch } // End while //-------------------------END OF FACILITY BOUNDARIES STUFF------------------------- $fac_gps = get_allocates(3, $row['id']); // 6/10/11 $grp_names = "Groups Assigned: "; // 6/10/11 $y = 0; // 6/10/11 foreach ($fac_gps as $value) { // 6/10/11 $counter = count($fac_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $grp_names .= " / "; $the_bg_color = $GLOBALS['FACY_TYPES_BG'][$row['icon']]; // 2/8/10 $the_text_color = $GLOBALS['FACY_TYPES_TEXT'][$row['icon']]; // 2/8/10 $the_on_click = my_is_float($row['lat']) ? " onClick = myclick({$i}); " : " onClick = myclick_nm({$row['unit_id']}); "; // 3/15/11 $got_point = FALSE; print "\n\t\tvar i={$i};\n"; if (is_guest()) { $toedit = $tomail = $toroute = ""; } else { $toedit = " <A HREF='{$_SESSION['facilitiesfile']}?func=responder&edit=true&id=" . $row['id'] . "'><U>Edit</U></A>"; $tomail = " <SPAN onClick = 'do_mail_in_win({$row['id']})'><U><B>Email</B></U></SPAN>"; $toroute = " <A HREF='{$_SESSION['facroutesfile']}?fac_id=" . $row['id'] . "'><U>Route To Facility</U></A>"; } $temp = $row['status_id']; $the_status = array_key_exists($temp, $status_vals) ? $status_vals[$temp] : "??"; $temp_type = $row['type']; $the_type = array_key_exists($temp_type, $type_vals) ? $type_vals[$temp_type] : "??"; if (!$got_point && my_is_float($row['lat'])) { if ($row['lat'] == 0.999999 && $row['lng'] == 0.999999) { echo "\t\tvar point = new GLatLng(" . get_variable('def_lat') . ", " . get_variable('def_lng') . ");\n"; } else { echo "\t\tvar point = new GLatLng(" . $row['lat'] . ", " . $row['lng'] . ");\n"; } $got_point = TRUE; } $update_error = strtotime('now - 6 hours'); // set the time for silent setting $index = $row['icon_str']; // name $display_name = $name = htmlentities($row['name'], ENT_QUOTES); $handle = htmlentities($row['handle'], ENT_QUOTES); // 7/7/11 $sidebar_line = " <TD WIDTH='15%' TITLE = '{$row['handle']}' {$the_on_click}><U><SPAN STYLE='background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};'>" . addslashes(shorten($handle, 15)) . "</SPAN></U></TD>"; // 6/10/11 $sidebar_line .= "<TD WIDTH='40%' TITLE = '" . addslashes($name) . "' {$the_on_click}><U><SPAN STYLE='background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};'><NOBR>" . addslashes(shorten($name, 24)) . "</NOBR></SPAN></U></TD><TD WIDTH='15%'>{$the_type}</TD>"; $sidebar_line .= "<TD WIDTH='20%' CLASS='td_data' TITLE = '" . addslashes($the_status) . "'> " . get_status_sel($row['id'], $row['status_id'], 'f') . "</TD>"; // 3/15/11 // as of $strike = $strike_end = ""; $the_time = $row['updated']; $the_class = ""; $strike = $strike_end = ""; $sidebar_line .= "<TD WIDTH='20%' CLASS='{$the_class}'> {$strike} <NOBR>" . format_sb_date($the_time) . "</NOBR> {$strike_end}</TD>"; // tab 1 if (my_is_float($row['lat'])) { // position data? $temptype = $u_types[$row['type']]; $the_type = $temptype[0]; $tab_1 = "<TABLE CLASS='infowin' width='{$iw_width}'>"; $tab_1 .= "<TR CLASS='even'><TD COLSPAN=2 ALIGN='center'><B>" . addslashes(shorten($display_name, 48)) . "</B> - " . $the_type . "</TD></TR>"; $tab_1 .= "<TR CLASS='odd'><TD ALIGN='right'>Description: </TD><TD ALIGN='left'>" . addslashes(shorten(str_replace($eols, " ", $row['description']), 32)) . "</TD></TR>"; $tab_1 .= "<TR CLASS='even'><TD ALIGN='right'>Status: </TD><TD ALIGN='left'>" . $the_status . " </TD></TR>"; $tab_1 .= "<TR CLASS='odd'><TD ALIGN='right'>Contact: </TD><TD ALIGN='left'>" . addslashes($row['contact_name']) . " Via: " . addslashes($row['contact_email']) . "</TD></TR>"; $tab_1 .= "<TR CLASS='even'><TD ALIGN='right'>As of: </TD><TD ALIGN='left'>" . format_date($row['updated']) . "</TD></TR>"; $tab_1 .= "<TR CLASS='odd'><TD COLSPAN=2 ALIGN='center'>" . $toedit . $tomail . " <A HREF='{$_SESSION['facilitiesfile']}?func=responder&view=true&id=" . $row['id'] . "'><U>View</U></A></TD></TR>"; // 08/8/02 $tab_1 .= "</TABLE>"; $tab_2 = "<TABLE CLASS='infowin' width='{$iw_width}' ALIGN = 'center' >"; $tab_2 .= "<TR CLASS='odd'><TD ALIGN='right' STYLE= 'width:50%'>Security contact: </TD><TD ALIGN='left' STYLE= 'width:50%'>" . addslashes($row['security_contact']) . " </TD></TR>"; $tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Security email: </TD><TD ALIGN='left'>" . addslashes($row['security_email']) . " </TD></TR>"; $tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Security phone: </TD><TD ALIGN='left'>" . addslashes($row['security_phone']) . " </TD></TR>"; $tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>" . get_text("Access rules") . ": </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row['access_rules'])) . "</TD></TR>"; $tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Security reqs: </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row['security_reqs'])) . "</TD></TR>"; $tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Opening hours: </TD><TD ALIGN='left'>" . addslashes(str_replace($eols, " ", $row['opening_hours'])) . "</TD></TR>"; $tab_2 .= "<TR CLASS='odd'><TD ALIGN='right'>Prim pager: </TD><TD ALIGN='left'>" . addslashes($row['pager_p']) . " </TD></TR>"; $tab_2 .= "<TR CLASS='even'><TD ALIGN='right'>Sec pager: </TD><TD ALIGN='left'>" . addslashes($row['pager_s']) . " </TD></TR>"; $tab_2 .= "</TABLE>"; // tab 2 $tabs_done = FALSE; // default if (!$tabs_done) { // ?> var myinfoTabs = [ new GInfoWindowTab("<?php print nl2brr(addslashes(shorten($row['name'], 10))); ?> ", "<?php print $tab_1; ?> "), new GInfoWindowTab("More ...", "<?php print str_replace($eols, " ", $tab_2); ?> "), new GInfoWindowTab("Zoom", "<div id='detailmap' class='detailmap'></div>") ]; <?php } // end if/else $name = $row['name']; // 10/8/09 4/28/11 if ($row['lat'] == 0.999999 && $row['lng'] == 0.999999) { // check for facilities added in no mpas mode 7/28/10 ?> var fac_id = "<?php print $index; ?> "; // 10/8/09 var the_class = ((map_is_fixed) && (!(mapBounds.containsLatLng(point))))? "emph" : "td_label"; do_sidebar ("<?php print $sidebar_line; ?> ", i, the_class, fac_id); var dummymarker = createdummyMarker(point, myinfoTabs,<?php print $row['type']; ?> , i, fac_id); // 771 (point,tabs, color, id) map.addOverlay(dummymarker); <?php } else { ?> var fac_id = "<?php print $index; ?> "; // 10/8/09 var the_class = ((map_is_fixed) && (!(mapBounds.containsLatLng(point))))? "emph" : "td_label"; do_sidebar ("<?php print $sidebar_line; ?> ", i, the_class, fac_id); var marker = createMarker(point, myinfoTabs,<?php print $row['type']; ?> , i, fac_id); // 771 (point,tabs, color, id) map.addOverlay(marker); <?php } // End of check for facilities added in no maps mode 7/28/10 } else { // end position data available $name = $row['name']; // 11/11/09 $temp = explode("/", $name); $index = substr($temp[count($temp) - 1], -6, strlen($temp[count($temp) - 1])); // 3/19/11 ?> var fac_id = "<?php print $index; ?> "; // 11/11/09 <?php print "\tdo_sidebar_nm (\" {$sidebar_line} \" , i, {$row['id']}, fac_id);\n"; // sidebar only - no map } $i++; // zero-based } // end ========== while() for Facility ========== ?> if (!(map_is_fixed)) { if (!points) { // any? map.setCenter(new GLatLng(<?php echo get_variable('def_lat'); ?> , <?php echo get_variable('def_lng'); ?> ), <?php echo get_variable('def_zoom'); ?> ); } else { center = bounds.getCenter(); zoom = map.getBoundsZoomLevel(bounds); map.setCenter(center,zoom); } } var buttons_html = ""; <?php if (!empty($addon)) { print "\n\tbuttons_html +=\"" . $addon . "\"\n"; } ?> side_bar_html +="</TABLE>\n"; $("side_bar").innerHTML += side_bar_html; // append the assembled side_bar_html contents to the side_bar div $("buttons").innerHTML = buttons_html; // append the assembled side_bar_html contents to the side_bar div $("num_facilities").innerHTML = <?php print $num_facilities; ?> ; <?php do_kml(); ?> </SCRIPT> <?php }
function edit_ticket($id) { /* post changes */ global $addrs, $NOTIFY_TICKET; $post_frm_meridiem_problemstart = empty($_POST) || !empty($_POST) && empty($_POST['frm_meridiem_problemstart']) ? "" : $_POST['frm_meridiem_problemstart']; $post_frm_meridiem_booked_date = empty($_POST) || !empty($_POST) && empty($_POST['frm_meridiem_booked_date']) ? "" : $_POST['frm_meridiem_booked_date']; //10/1/09 $post_frm_affected = empty($_POST) || !empty($_POST) && empty($_POST['frm_affected']) ? "" : $_POST['frm_affected']; $_POST['frm_description'] = strip_html($_POST['frm_description']); //clean up HTML tags $post_frm_affected = strip_html($post_frm_affected); $_POST['frm_scope'] = strip_html($_POST['frm_scope']); /* if (get_variable('reporting')) { // if any change do automatic action reporting // if ($_POST[frm_affected] != $_POST[frm_affected_default]) report_action($GLOBALS[ACTION_AFFECTED],$_POST[frm_affected],0,$id); if ($_POST[frm_severity] != $_POST[frm_severity_default]) report_action($GLOBALS[ACTION_SEVERITY],get_severity($_POST[frm_severity_default]),get_severity($_POST[frm_severity]),$id); if ($_POST[frm_scope] != $_POST[frm_scope_default]) report_action($GLOBALS[ACTION_SCOPE],$_POST[frm_scope_default],0,$id); } */ if (!get_variable('military_time')) { //put together date from the dropdown box and textbox values if ($post_frm_meridiem_problemstart == 'pm') { $post_frm_meridiem_problemstart = ($post_frm_meridiem_problemstart + 12) % 24; } if (isset($_POST['frm_meridiem_booked_date'])) { //10/1/09 if ($_POST['frm_meridiem_booked_date'] == 'pm') { $_POST['frm_hour_booked_date'] = ($_POST['frm_hour_booked_date'] + 12) % 24; } } // if ($_POST['frm_meridiem_problemend'] == 'pm') $_POST['frm_hour_problemend'] = ($_POST['frm_hour_problemend'] + 12) % 24; } if (empty($post_frm_owner)) { $post_frm_owner = 0; } // $frm_problemstart = $_POST['frm_year_problemstart']-$_POST['frm_month_problemstart']-$_POST['frm_day_problemstart'] $_POST['frm_hour_problemstart']:$_POST['frm_minute_problemstart']:00"; $frm_problemstart = "{$_POST['frm_year_problemstart']}-{$_POST['frm_month_problemstart']}-{$_POST['frm_day_problemstart']} {$_POST['frm_hour_problemstart']}:{$_POST['frm_minute_problemstart']}:00{$post_frm_meridiem_problemstart}"; $curr_groups = $_POST['frm_exist_groups']; // 6/10/11 $groups = "," . implode(',', $_POST['frm_group']) . ","; // 6/10/11 // dump($_POST); // 6/10/11 if (!get_variable('military_time')) { //put together date from the dropdown box and textbox values if ($post_frm_meridiem_problemstart == 'pm') { $_POST['frm_hour_problemstart'] = ($_POST['frm_hour_problemstart'] + 12) % 24; } if (isset($_POST['frm_meridiem_problemend'])) { if ($_POST['frm_meridiem_problemend'] == 'pm') { $_POST['frm_hour_problemend'] = ($_POST['frm_hour_problemend'] + 12) % 24; } } if (isset($_POST['frm_meridiem_booked_date'])) { //10/1/09 if ($_POST['frm_meridiem_booked_date'] == 'pm') { $_POST['frm_hour_booked_date'] = ($_POST['frm_hour_booked_date'] + 12) % 24; } } } $frm_problemend = isset($_POST['frm_year_problemend']) ? quote_smart("{$_POST['frm_year_problemend']}-{$_POST['frm_month_problemend']}-{$_POST['frm_day_problemend']} {$_POST['frm_hour_problemend']}:{$_POST['frm_minute_problemend']}:00") : "NULL"; $frm_booked_date = isset($_POST['frm_year_booked_date']) ? quote_smart("{$_POST['frm_year_booked_date']}-{$_POST['frm_month_booked_date']}-{$_POST['frm_day_booked_date']} {$_POST['frm_hour_booked_date']}:{$_POST['frm_minute_booked_date']}:00") : "NULL"; //10/1/09 if ($_POST['frm_status'] != 1) { $frm_problemend = "NULL"; } // perform db update $now = mysql_format_date(time() - get_variable('delta_mins') * 60); $by = $_SESSION['user_id']; // 12/7/10 if (empty($post_frm_owner)) { $post_frm_owner = 0; } // 8/23/08, 9/20/08, 9/22/09 (Facility), 10/1/09 (receiving facility), 6/26/10 (911), 6/10/11 $query = "UPDATE `{$GLOBALS['mysql_prefix']}ticket` SET \n\t\t\t`contact`= " . quote_smart(trim($_POST['frm_contact'])) . ",\n\t\t\t`street`= " . quote_smart(trim($_POST['frm_street'])) . ",\n\t\t\t`city`= " . quote_smart(trim($_POST['frm_city'])) . ",\n\t\t\t`state`= " . quote_smart(trim($_POST['frm_state'])) . ",\n\t\t\t`phone`= " . quote_smart(trim($_POST['frm_phone'])) . ",\n\t\t\t`facility`= " . quote_smart(trim($_POST['frm_facility_id'])) . ",\n\t\t\t`rec_facility`= " . quote_smart(trim($_POST['frm_rec_facility_id'])) . ",\n\t\t\t`lat`= " . quote_smart(trim($_POST['frm_lat'])) . ",\n\t\t\t`lng`= " . quote_smart(trim($_POST['frm_lng'])) . ",\n\t\t\t`scope`= " . quote_smart(trim($_POST['frm_scope'])) . ",\n\t\t\t`owner`= " . quote_smart(trim($post_frm_owner)) . ",\n\t\t\t`severity`= " . quote_smart(trim($_POST['frm_severity'])) . ",\n\t\t\t`in_types_id`= " . quote_smart(trim($_POST['frm_in_types_id'])) . ",\n\t\t\t`status`=" . quote_smart(trim($_POST['frm_status'])) . ",\n\t\t\t`problemstart`=" . quote_smart(trim($frm_problemstart)) . ",\n\t\t\t`problemend`=" . $frm_problemend . ",\n\t\t\t`description`= " . quote_smart(trim($_POST['frm_description'])) . ",\n\t\t\t`comments`= " . quote_smart(trim($_POST['frm_comments'])) . ",\n\t\t\t`nine_one_one`= " . quote_smart(trim($_POST['frm_nine_one_one'])) . ",\n\t\t\t`booked_date`= \t\t{$frm_booked_date},\n\t\t\t`_by` = \t\t\t{$by}, \n\t\t\t`updated`='{$now}'\n\t\t\tWHERE ID='{$id}'"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), __FILE__, __LINE__); $list = $_POST['frm_exist_groups']; // 6/10/11 $ex_grps = explode(',', $list); // 6/10/11 if ($curr_groups != $groups) { // 6/10/11 foreach ($_POST['frm_group'] as $posted_grp) { // 6/10/11 if (!in_array($posted_grp, $ex_grps)) { $tick_stat = $_POST['frm_status']; $query = "INSERT INTO `{$GLOBALS['mysql_prefix']}allocates` (`group` , `type`, `al_as_of` , `al_status` , `resource_id` , `sys_comments` , `user_id`) VALUES \n\t\t\t\t\t\t\t({$posted_grp}, 1, '{$now}', {$tick_stat}, {$id}, 'Allocated to Group' , {$by})"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); } } foreach ($ex_grps as $existing_grp) { // 6/10/11 print $existing_grp; if (in_array($existing_grp, get_allocates(4, $id))) { if (!in_array($existing_grp, $_POST['frm_group'])) { $query = "DELETE FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type` = 1 AND `group` = '{$existing_grp}' AND `resource_id` = {$id}"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); } } } } $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` WHERE `ticket_id` = '{$id}' AND (`clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00')"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_assigns = mysql_num_rows($result); if ($num_assigns != 0) { // 4/4/11 - added to update any existing assigns record with any ticket changes. $query = "UPDATE `{$GLOBALS['mysql_prefix']}assigns` SET \n\t\t\t`as_of`='{$now}',\n\t\t\t`status_id`= " . quote_smart(trim($_POST['frm_status'])) . ",\n\t\t\t`user_id`= " . quote_smart(trim($post_frm_owner)) . ",\n\t\t\t`facility_id`= " . quote_smart(trim($_POST['frm_facility_id'])) . ",\n\t\t\t`rec_facility_id`= " . quote_smart(trim($_POST['frm_rec_facility_id'])) . "\n\t\t\tWHERE ticket_id='{$id}'"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); } do_log($GLOBALS['LOG_INCIDENT_CHANGE'], $id, 0); // report change - 3/25/10 if ($_POST['frm_status'] == $GLOBALS['STATUS_CLOSED']) { // log incident complete - repeats possible do_log($GLOBALS['LOG_INCIDENT_CLOSE'], $id, 0); } switch ($_POST['frm_fac_chng']) { // log facility changes - 3/25/10 case "0": // no change break; case "1": do_log($GLOBALS['LOG_FACILITY_INCIDENT_CHANGE'], $id, 0); //10/1/09 break; case "2": do_log($GLOBALS['LOG_CALL_REC_FAC_CHANGE'], $id); //10/7/09 break; case "3": do_log($GLOBALS['LOG_FACILITY_INCIDENT_CHANGE'], $id, 0); //10/1/09 do_log($GLOBALS['LOG_CALL_REC_FAC_CHANGE'], $id); //10/7/09 break; default: // 8/10/09 // dump($_POST['frm_fac_chng']); print "ERROR in " . basename(__FILE__) . " " . __LINE__ . "<BR />"; } // end switch () print '<FONT CLASS="header">Ticket <I>' . $_POST['frm_scope'] . '</I> has been updated</FONT><BR /><BR />'; /* show updated ticket */ // notify_user($id, $GLOBALS['NOTIFY_TICKET']); add_header($id); show_ticket($id); $addrs = notify_user($id, $GLOBALS['NOTIFY_TICKET_CHG']); // returns array or FALSE unset($_SESSION['active_ticket']); // 5/4/11 }
</TD></TR> <?php } elseif (get_num_groups() && COUNT(get_allocates(4, $_SESSION['user_id'])) > 1) { // 6/10/11 ?> <TR CLASS='even' VALIGN="top"> <!-- 6/10/11 --> <TD CLASS="td_label" onmouseout='UnTip()' onmouseover="Tip('Sets groups that Incident is allocated to - click + to expand, - to collapse');"><?php print get_text("Groups"); ?> </A>: </TD> <TD> <SPAN id='expand_gps' onClick="$('groups_sh').style.display = 'inline-block'; $('expand_gps').style.display = 'none'; $('collapse_gps').style.display = 'inline-block';" style = 'display: inline-block; font-size: 16px; border: 1px solid;'><B>+</B></SPAN> <SPAN id='collapse_gps' onClick="$('groups_sh').style.display = 'none'; $('collapse_gps').style.display = 'none'; $('expand_gps').style.display = 'inline-block';" style = 'display: none; font-size: 16px; border: 1px solid;'><B>-</B></SPAN></TD> <TD> <?php $alloc_groups = implode(',', get_allocates(4, $_SESSION['user_id'])); // 6/10/11 print get_user_group_butts_readonly($_SESSION['user_id']); // 6/10/11 ?> </TD></TR> <?php } else { } } else { ?> <INPUT TYPE="hidden" NAME="frm_group[]" VALUE="1"> <!-- 6/10/11 --> <?php } // end if num of groups is greater than 1 (i.e. non multi-region system
function list_responders($addon = '', $start) { global $iw_width, $u_types, $tolerance; $assigns = array(); // 08/8/3 $tickets = array(); // ticket id's // 7/18/10 $query = "SELECT `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`, `{$GLOBALS['mysql_prefix']}assigns`.`responder_id`,\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`scope` AS `ticket` \n\t\tFROM `{$GLOBALS['mysql_prefix']}assigns` \t\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` ON `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`=`{$GLOBALS['mysql_prefix']}ticket`.`id`\n\t\tWHERE ( `clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_as = stripslashes_deep(mysql_fetch_array($result_as))) { $assigns[$row_as['responder_id']] = $row_as['ticket']; $tickets[$row_as['responder_id']] = $row_as['ticket_id']; } unset($result_as); $calls = array(); // 6/17/08 $calls_nr = array(); $calls_time = array(); $query = "SELECT * , UNIX_TIMESTAMP(packet_date) AS `packet_date` FROM `{$GLOBALS['mysql_prefix']}tracks` ORDER BY `packet_date` ASC"; // 6/17/08 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), __FILE__, __LINE__); while ($row = mysql_fetch_array($result)) { if (isset($calls[$row['source']])) { // array_key_exists ( mixed key, array search ) $calls_nr[$row['source']]++; } else { // array_push ($calls, trim($row['source'])); $calls[trim($row['source'])] = TRUE; $calls_nr[$row['source']] = 1; } $calls_time[$row['source']] = $row['packet_date']; // save latest - note query order } ?> <SCRIPT > var color=0; var colors = new Array ('odd', 'even'); function hideDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = 'none'; $(hide_cont).style.display = 'none'; $(show_cont).style.display = ''; } var params = "f_n=" +controlarea+ "&v_n=h&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function showDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = ''; $(hide_cont).style.display = ''; $(show_cont).style.display = 'none'; } var params = "f_n=" +controlarea+ "&v_n=s&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function hideGroup(color) { for (var i = 0; i < gmarkers.length; i++) { if (gmarkers[i]) { if (gmarkers[i].id == color) { gmarkers[i].show(); } else { gmarkers[i].hide(); } } // end if (gmarkers[i]) } // end for () elem = $("allIcons"); elem.style.visibility = "visible"; } // end function function showAll() { for (var i = 0; i < gmarkers.length; i++) { if (gmarkers[i]) { gmarkers[i].show(); } } // end for () elem = $("allIcons"); elem.style.visibility = "hidden"; } // end function function checkArray(form, arrayName) { // 5/3/11 var retval = new Array(); for(var i=0; i < form.elements.length; i++) { var el = form.elements[i]; if(el.type == "checkbox" && el.name == arrayName && el.checked) { retval.push(el.value); } } return retval; } function checkForm(form) { // 6/10/11 var errmsg=""; var itemsChecked = checkArray(form, "frm_group[]"); if(itemsChecked.length > 0) { var params = "f_n=viewed_groups&v_n=" +itemsChecked+ "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // 3/15/11 var url = "persist3.php"; // 3/15/11 sendRequest (url, fvg_handleResult, params); form.submit(); } else { errmsg+= "\tYou cannot Hide all the regions\n"; if (errmsg!="") { alert ("Please correct the following and re-submit:\n\n" + errmsg); return false; } } } function fvg_handleResult(req) { // 6/10/11 The persist callback function for viewed groups. document.region_form.submit(); } function form_validate(theForm) { // 5/3/11 // alert("Validating"); checkForm(theForm); } // end function validate(theForm) function sendRequest(url,callback,postData) { // 2/14/09 var req = createXMLHTTPObject(); if (!req) return; var method = (postData) ? "POST" : "GET"; req.open(method,url,true); req.setRequestHeader('User-Agent','XMLHTTP/1.0'); if (postData) req.setRequestHeader('Content-type','application/x-www-form-urlencoded'); req.onreadystatechange = function () { if (req.readyState != 4) return; if (req.status != 200 && req.status != 304) { return; } callback(req); } if (req.readyState == 4) return; req.send(postData); } var XMLHttpFactories = [ function () {return new XMLHttpRequest() }, function () {return new ActiveXObject("Msxml2.XMLHTTP") }, function () {return new ActiveXObject("Msxml3.XMLHTTP") }, function () {return new ActiveXObject("Microsoft.XMLHTTP") } ]; function createXMLHTTPObject() { var xmlhttp = false; for (var i=0;i<XMLHttpFactories.length;i++) { try { xmlhttp = XMLHttpFactories[i](); } catch (e) { continue; } break; } return xmlhttp; } function createMarker(point,tabs, color, id, unit_id) { // (point, myinfoTabs,<?php print $row['type']; ?> , i) points = true; var unit_id = unit_id; // 2/13/09 var icon = new GIcon(listIcon); var icon_url = "./our_icons/gen_icon.php?blank=" + color + "&text=" + unit_id; // 1/5/09 icon.image = icon_url; // ./our_icons/gen_icon.php?blank=4&text=zz" var marker = new GMarker(point, icon); marker.id = color; // for hide/unhide - unused GEvent.addListener(marker, "click", function() { // here for both side bar and icon click if (marker) { map.closeInfoWindow(); which = id; gmarkers[which].hide(); marker.openInfoWindowTabsHtml(infoTabs[id]); setTimeout(function() { // wait for rendering complete - 12/17/08 if ($("detailmap")) { var dMapDiv = $("detailmap"); var detailmap = new GMap2(dMapDiv); detailmap.addControl(new GSmallMapControl()); detailmap.setCenter(point, 17); // larger # = closer detailmap.addOverlay(marker); } else { // alert(62); // alert($("detailmap")); } },4000); // end setTimeout(...) } // end if (marker) }); // end GEvent.add Listener() gmarkers[id] = marker; // marker to array for side bar click function infoTabs[id] = tabs; // tabs to array if (!(map_is_fixed)) { // 4/3/09 bounds.extend(point); } return marker; } // end function create Marker() function createdummyMarker(point,tabs, color, id, unit_id) { // (point, myinfoTabs,<?php print $row['type']; ?> , i) points = true; var unit_id = unit_id; // 2/13/09 var icon = new GIcon(listIcon); var icon_url = "./our_icons/question1.png"; icon.image = icon_url; // ./our_icons/gen_icon.php?blank=4&text=zz" var dummymarker = new GMarker(point, icon); dummymarker.id = color; // for hide/unhide - unused GEvent.addListener(dummymarker, "click", function() { // here for both side bar and icon click if (dummymarker) { map.closeInfoWindow(); which = id; gmarkers[which].hide(); dummymarker.openInfoWindowTabsHtml(infoTabs[id]); setTimeout(function() { // wait for rendering complete - 12/17/08 if ($("detailmap")) { var dMapDiv = $("detailmap"); var detailmap = new GMap2(dMapDiv); detailmap.addControl(new GSmallMapControl()); detailmap.setCenter(point, 17); // larger # = closer detailmap.addOverlay(dummymarker); } else { // alert(62); // alert($("detailmap")); } },4000); // end setTimeout(...) } // end if (marker) }); // end GEvent.add Listener() gmarkers[id] = dummymarker; // marker to array for side bar click function infoTabs[id] = tabs; // tabs to array if (!(map_is_fixed)) { // 4/3/09 bounds.extend(point); } return dummymarker; } // end function create dummy Marker() function do_sidebar (sidebar, id, the_class, sidebar_id) { var sidebar_id = sidebar_id; side_bar_html += "<TR CLASS='" + colors[(id)%2] +"'>"; side_bar_html += "<TD WIDTH='5%' CLASS='" + the_class + "' onClick = myclick(" + id + "); >" + sidebar_id + sidebar +"</TD></TR>\n"; // 1/5/09, 3/4/09, 10/29/09 removed period } function do_sidebar_nm (sidebar, line_no, id, sidebar_id) { var sidebar_id = sidebar_id; side_bar_html += "<TR CLASS='" + colors[(line_no)%2] +"'>"; side_bar_html += "<TD WIDTH='5%' onClick = myclick_nm(" + sidebar_id + "); >" + sidebar_id + sidebar +"</TD></TR>\n"; // 1/23/09, 10/29/09 removed period, 11/11/09 } function myclick_nm(v_id) { // Responds to sidebar click - view responder data document.view_form.id.value=v_id; document.view_form.submit(); } function myclick(id) { // Responds to sidebar click, then triggers listener above - note [id] GEvent.trigger(gmarkers[id], "click"); location.href = '#top'; // 11/11/09 } function do_lat (lat) { document.forms[0].frm_lat.value=lat.toFixed(6); } function do_lng (lng) { document.forms[0].frm_lng.value=lng.toFixed(6); } function do_ngs() { // LL to USNG var loc = <?php print get_variable('locale'); ?> ; document.forms[0].frm_ngs.disabled=false; if(loc == 0) { document.forms[0].frm_ngs.value = LLtoUSNG(document.forms[0].frm_lat.value, document.forms[0].frm_lng.value, 5); } if(loc == 1) { document.forms[0].frm_ngs.value = LLtoOSGB(document.forms[0].frm_lat.value, document.forms[0].frm_lng.value, 5); } if(loc == 2) { document.forms[0].frm_ngs.value = LLtoOSGB(document.forms[0].frm_lat.value, document.forms[0].frm_lng.value, 5); } document.forms[0].frm_ngs.disabled=true; } var icons=new Array; // maps type to icon blank <?php $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}unit_types` ORDER BY `id`"; // types in use $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $icons = $GLOBALS['icons']; while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // map type to blank icon id $blank = $row['icon']; print "\ticons[" . $row['id'] . "] = " . $blank . ";\n"; // } unset($result); $dzf = get_variable('def_zoom_fixed'); print "\tvar map_is_fixed = "; print my_is_int($dzf) && $dzf == 2 || my_is_int($dzf) && $dzf == 3 ? "true;\n" : "false;\n"; ?> var map; var side_bar_html = "<TABLE border=0 CLASS='sidebar' WIDTH = '100%' >"; side_bar_html += "<TR class='even'> <TD></TD><TD ALIGN='left'><B>Unit</B></TD><TD ALIGN='left'><B>Handle</B></TD><TD ALIGN='left'><B>Dispatch</B></TD><TD ALIGN='left'><B>Status</B></TD><TD ALIGN='left'><B>M</B></TD><TD ALIGN='left'><B>As of</B></TD></TR>"; var gmarkers = []; var infoTabs = []; var which; var i = <?php print $start; ?> ; // sidebar/icon index var points = false; // none map = new GMap2($("map")); // create the map <?php $maptype = get_variable('maptype'); // 08/02/09 switch ($maptype) { case "1": break; case "2": ?> map.setMapType(G_SATELLITE_MAP);<?php break; case "3": ?> map.setMapType(G_PHYSICAL_MAP);<?php break; case "4": ?> map.setMapType(G_HYBRID_MAP);<?php break; default: print "ERROR in " . basename(__FILE__) . " " . __LINE__ . "<BR />"; } ?> // map.addControl(new GSmallMapControl()); // 10/6/08 map.setUIToDefault(); // 8/13/10 map.addControl(new GMapTypeControl()); <?php if (get_variable('terrain') == 1) { ?> map.addMapType(G_PHYSICAL_MAP); <?php } ?> map.setCenter(new GLatLng(<?php echo get_variable('def_lat'); ?> , <?php echo get_variable('def_lng'); ?> ), <?php echo get_variable('def_zoom'); ?> ); mapBounds=new GLatLngBounds(map.getBounds().getSouthWest(), map.getBounds().getNorthEast()); // 4/4/09 var bounds = new GLatLngBounds(); // create bounding box map.enableScrollWheelZoom(); var listIcon = new GIcon(); listIcon.image = "./markers/yellow.png"; // yellow.png - 16 X 28 listIcon.shadow = "./markers/sm_shadow.png"; listIcon.iconSize = new GSize(20, 34); listIcon.shadowSize = new GSize(37, 34); listIcon.iconAnchor = new GPoint(8, 28); listIcon.infoWindowAnchor = new GPoint(9, 2); listIcon.infoShadowAnchor = new GPoint(18, 25); GEvent.addListener(map, "infowindowclose", function() { // re-center after move/zoom map.addOverlay(gmarkers[which]) }); do_landb(); // 8/1/11 - show scribbles //-----------------------BOUNDARIES STUFF--------------------6/10/11 var thepoint; var points = new Array(); var boundary = new Array(); var bound_names = new Array(); GEvent.addListener(map, "click", function(overlay,boundpoint) { for (var n = 0; n < boundary.length; n++) { if (boundary[n].Contains(boundpoint)) { map.openInfoWindowHtml(boundpoint,"This is " + bound_names[n]); } } }); <?php $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}' ORDER BY `id` ASC;"; // 6/10/11 $result = mysql_query($query); // 6/10/11 $a_gp_bounds = array(); $gp_bounds = array(); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 6/10/11 $al_groups[] = $row['group']; $query2 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}region` WHERE `id`= '{$row['group']}';"; // 6/10/11 $result2 = mysql_query($query2); // 4/18/11 while ($row2 = stripslashes_deep(mysql_fetch_assoc($result2))) { // // 6/10/11 if ($row2['boundary'] != 0) { $a_gp_bounds[] = $row2['boundary']; } } } if (isset($_SESSION['viewed_groups'])) { // 6/10/11 foreach (explode(",", $_SESSION['viewed_groups']) as $val_vg) { $query3 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}region` WHERE `id`= '{$val_vg}';"; $result3 = mysql_query($query3); // 6/10/11 while ($row3 = stripslashes_deep(mysql_fetch_assoc($result3))) { if ($row3['boundary'] != 0) { $gp_bounds[] = $row3['boundary']; } } } } else { $gp_bounds = $a_gp_bounds; } foreach ($gp_bounds as $value) { // 6/10/11 ?> var points = new Array(); <?php if ($value != 0) { $query_bn = "SELECT * FROM `{$GLOBALS['mysql_prefix']}mmarkup` WHERE `id`='{$value}'"; $result_bn = mysql_query($query_bn) or do_error($query_bn, mysql_error(), basename(__FILE__), __LINE__); while ($row_bn = stripslashes_deep(mysql_fetch_assoc($result_bn))) { extract($row_bn); $bn_name = $row_bn['line_name']; $points = explode(";", $line_data); for ($i = 0; $i < count($points); $i++) { $coords = explode(",", $points[$i]); ?> thepoint = new GLatLng(parseFloat(<?php print $coords[0]; ?> ), parseFloat(<?php print $coords[1]; ?> )); points.push(thepoint); <?php } // end for ($i = 0 ... ) ?> <?php if (intval($filled) == 1) { // 6/10/11 ?> var polyline = new GPolygon(points, add_hash("<?php print $line_color; ?> "), <?php print $line_width; ?> , <?php print $line_opacity; ?> , add_hash("<?php print $fill_color; ?> "), <?php print $fill_opacity; ?> , {clickable:false}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } else { ?> var polyline = new GPolyline(points, add_hash("<?php print $line_color; ?> "), <?php print $line_width; ?> , <?php print $line_opacity; ?> , , 0, {clickable:false}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } ?> map.addOverlay(polyline); <?php } // End while } // end if $value !=0 } // end foreach $gp_bounds //-------------------------END OF BOUNDARIES STUFF------------------------- function can_do_dispatch($the_row) { if (intval($the_row['multi']) == 1) { return TRUE; } $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` WHERE `responder_id` = {$the_row['id']}"; // all dispatches this unit $result_temp = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_temp = stripslashes_deep(mysql_fetch_array($result_temp))) { // check any open runs this unit if (!is_date($row_temp['clear'])) { // if clear is empty, then NOT dispatch-able unset($result_temp, $row_temp); return FALSE; } } // end while ($row_temp ...) unset($result_temp, $row_temp); return TRUE; // none found, can dispatch } // end function can do_dispatch() $eols = array("\r\n", "\n", "\r"); // all flavors of eol $bulls = array(0 => "", 1 => "red", 2 => "green", 3 => "white", 4 => "black"); $status_vals = array(); // build array of $status_vals $status_vals[''] = $status_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}un_status` ORDER BY `id`"; $result_st = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_st = stripslashes_deep(mysql_fetch_array($result_st))) { $temp = $row_st['id']; $status_vals[$temp] = $row_st['status_val']; } unset($result_st); $query_al = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}';"; // 6/10/11 $result_al = mysql_query($query_al); // 6/10/11 $al_groups = array(); while ($row_al = stripslashes_deep(mysql_fetch_assoc($result_al))) { // 6/10/11 $al_groups[] = $row_al['group']; } if (isset($_SESSION['viewed_groups'])) { // 6/10/11 $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($al_groups as $grp) { // 6/10/11 $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($curr_viewed as $grp) { // 6/10/11 $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } $where2 .= "AND `a`.`type` = 2"; // 6/10/11 //-----------------------UNIT RING FENCE STUFF--------------------6/10/11 ?> var thepoint; var points = new Array(); <?php $query_bn = "SELECT * FROM `{$GLOBALS['mysql_prefix']}mmarkup` `l`\n\t\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}responder` `r` ON ( `l`.`id` = `r`.`ring_fence`)\n\t\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `r`.`id` = `a`.`resource_id` )\t\n\t\t\t\t{$where2} AND `use_with_u_rf`=1 GROUP BY `l`.`id`"; $result_bn = mysql_query($query_bn) or do_error($query_bn, mysql_error(), basename(__FILE__), __LINE__); while ($row_bn = stripslashes_deep(mysql_fetch_assoc($result_bn))) { extract($row_bn); $bn_name = $row_bn['line_name']; $all_boundaries[] = $row_bn['ring_fence']; $points = explode(";", $line_data); for ($i = 0; $i < count($points); $i++) { $coords = explode(",", $points[$i]); ?> thepoint = new GLatLng(parseFloat(<?php print $coords[0]; ?> ), parseFloat(<?php print $coords[1]; ?> )); points.push(thepoint); <?php } // end for ($i = 0 ... ) if (intval($filled) == 1) { // 6/10/11 ?> var polyline = new GPolygon(points, add_hash("<?php print $line_color; ?> "), <?php print $line_width; ?> , <?php print $line_opacity; ?> , add_hash("<?php print $fill_color; ?> "), <?php print $fill_opacity; ?> , {clickable:false, id:"ringfence"}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } else { ?> var polyline = new GPolyline(points, add_hash("<?php print $line_color; ?> "), <?php print $line_width; ?> , <?php print $line_opacity; ?> , , 0, {clickable:false, id:"ringfence"}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } ?> map.addOverlay(polyline); <?php } // End while //-------------------------END OF UNIT RING FENCE STUFF------------------------- //-----------------------UNIT EXCLUSION ZONE STUFF--------------------6/10/11 ?> var thepoint; var points = new Array(); <?php $query_bn = "SELECT * FROM `{$GLOBALS['mysql_prefix']}mmarkup` `l`\n\t\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}responder` `r` ON ( `l`.`id` = `r`.`excl_zone`)\n\t\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `r`.`id` = `a`.`resource_id` )\t\n\t\t\t\t{$where2} AND `use_with_u_ex`=1 GROUP BY `l`.`id`"; $result_bn = mysql_query($query_bn) or do_error($query_bn, mysql_error(), basename(__FILE__), __LINE__); while ($row_bn = stripslashes_deep(mysql_fetch_assoc($result_bn))) { extract($row_bn); $bn_name = $row_bn['line_name']; $all_boundaries[] = $row_bn['ring_fence']; $points = explode(";", $line_data); for ($i = 0; $i < count($points); $i++) { $coords = explode(",", $points[$i]); ?> thepoint = new GLatLng(parseFloat(<?php print $coords[0]; ?> ), parseFloat(<?php print $coords[1]; ?> )); points.push(thepoint); <?php } // end for ($i = 0 ... ) if (intval($filled) == 1) { // 6/10/11 ?> var polyline = new GPolygon(points, add_hash("<?php print $line_color; ?> "), <?php print $line_width; ?> , <?php print $line_opacity; ?> , add_hash("<?php print $fill_color; ?> "), <?php print $fill_opacity; ?> , {clickable:false, id:"ringfence"}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } else { ?> var polyline = new GPolyline(points, add_hash("<?php print $line_color; ?> "), <?php print $line_width; ?> , <?php print $line_opacity; ?> , , 0, {clickable:false, id:"ringfence"}); boundary.push(polyline); bound_names.push("<?php print $bn_name; ?> "); <?php } ?> map.addOverlay(polyline); <?php } // End while //-------------------------END OF UNIT EXCLUSION ZONE STUFF------------------------- $query = "SELECT *, UNIX_TIMESTAMP(updated) AS `updated`,\n\t\t`t`.`id` AS `type_id`,\n\t\t`r`.`id` AS `unit_id`,\n\t\t`r`.`name` AS `name`,\n\t\t`s`.`description` AS `stat_descr`,\n\t\t`r`.`description` AS `unit_descr`, \n\t\t`r`.`ring_fence` AS `ring_fence`,\t\n\t\t`r`.`excl_zone` AS `excl_zone`,\t\t\n\t\t(SELECT COUNT(*) as numfound FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\tWHERE `{$GLOBALS['mysql_prefix']}assigns`.`responder_id` = unit_id AND (`clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )) AS `nr_assigned` \n\t\tFROM `{$GLOBALS['mysql_prefix']}responder` `r` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `r`.`id` = a.resource_id )\t\t\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}unit_types` `t` ON ( `r`.`type` = t.id )\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}un_status` `s` ON ( `r`.`un_status_id` = s.id ) \t\t\n\t\t{$where2} GROUP BY unit_id ORDER BY `nr_assigned` DESC, `handle` ASC, `r`.`name` ASC "; // 2/1/10, 3/15/10, 6/10/11 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_units = mysql_affected_rows(); $i = 0; // counter // ============================================================================= $bulls = array(0 => "", 1 => "red", 2 => "green", 3 => "white", 4 => "black"); $utc = gmdate("U"); // ========== major while() for RESPONDER ========== while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { $ringfence = $row['ring_fence']; $resp_gps = get_allocates(2, $row['unit_id']); // 6/10/11 $grp_names = "Groups Assigned: "; // 6/10/11 $y = 0; // 6/10/11 foreach ($resp_gps as $value) { // 6/10/11 $counter = count($resp_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $grp_names .= " / "; $track_type = get_remote_type($row); $index = $row['icon_str']; // 4/28/11 $the_on_click = my_is_float($row['lat']) ? " onClick = myclick({$i}); " : " onClick = myclick_nm({$row['unit_id']}); "; $the_bg_color = $GLOBALS['UNIT_TYPES_BG'][$row['icon']]; // 2/1/10 $the_text_color = $GLOBALS['UNIT_TYPES_TEXT'][$row['icon']]; // 2/1/10 $do_dispatch = can_do_dispatch($row); // 11/17/09 $got_point = FALSE; print "\n\t\tvar i={$i};\n"; $tofac = is_guest() ? "" : " <A HREF='{$_SESSION['unitsfile']}?func=responder&view=true&dispfac=true&id=" . $row['unit_id'] . "'><U>To Facility</U></A> "; // 10/6/09 $todisp = is_guest() || !can_do_dispatch($row) ? "" : " <A HREF='{$_SESSION['unitsfile']}?func=responder&view=true&disp=true&id=" . $row['unit_id'] . "'><U>Dispatch</U></A> "; // 08/8/02, 9/19/09 $toedit = !can_edit() ? "" : " <A HREF='{$_SESSION['unitsfile']}?func=responder&edit=true&id=" . $row['unit_id'] . "'><U>Edit</U></A> "; // 5/11/10 $totrack = intval($row['mobile']) == 0 || empty($row['callsign']) ? "" : " <SPAN onClick = do_track('" . $row['callsign'] . "');><B><U>Tracks</B></U></SPAN>"; $temp = $row['un_status_id']; // 2/24/09 $the_status = array_key_exists($temp, $status_vals) ? $status_vals[$temp] : "??"; // 2/2/09 $row_track = FALSE; if ($track_type > 0) { // get most recent position data $do_legend = TRUE; $query = "SELECT *,UNIX_TIMESTAMP(packet_date) AS `packet_date`, UNIX_TIMESTAMP(updated) AS `updated` FROM \n\t\t\t\t`{$GLOBALS['mysql_prefix']}tracks`\n\t\t\t\tWHERE `source`= '{$row['callsign']}' ORDER BY `packet_date` DESC LIMIT 1"; // newest $result_tr = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $row_track = mysql_affected_rows() > 0 ? stripslashes_deep(mysql_fetch_assoc($result_tr)) : FALSE; $aprs_updated = $row_track['updated']; $aprs_speed = $row_track['speed']; if ($row_track && my_is_float($row_track['latitude'])) { if ($row['lat'] == 0.999999 && $row['lng'] == 0.999999) { echo "\t\tvar point = new GLatLng(" . get_variable('def_lat') . ", " . get_variable('def_lng') . ");\n"; } else { echo "\t\tvar point = new GLatLng(" . $row_track['latitude'] . ", " . $row_track['longitude'] . "); // 677\n"; } $got_point = TRUE; } unset($result_tr); } if (!$got_point && my_is_float($row['lat'])) { if ($row['lat'] == 0.999999 && $row['lng'] == 0.999999) { echo "\t\tvar point = new GLatLng(" . get_variable('def_lat') . ", " . get_variable('def_lng') . ");\n"; } else { echo "\t\tvar point = new GLatLng(" . $row['lat'] . ", " . $row['lng'] . ");\t// " . __LINE__ . "\n"; } $got_point = TRUE; } $update_error = strtotime('now - 6 hours'); // set the time for silent setting // if ($instam_updated < $update_error) {$the_bull = "<FONT COLOR = 'black'><B>{$GLOBALS['TRACK_2L'][$track_type]}</B></FONT>";} // end bullet stuff // name, handle $handle = htmlentities($row['handle'], ENT_QUOTES); // 7/7/11 $sidebar_line = "<TD WIDTH='15%' TITLE = '{$handle}' {$the_on_click}><NOBR>{$handle}</NOBR></TD>"; $name = htmlentities($row['name'], ENT_QUOTES); $sidebar_line .= "<TD WIDTH='20%' TITLE = '{$name}' {$the_on_click}><U><SPAN STYLE='width: 30%; background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};'><NOBR>" . addslashes(shorten($row['name'], 14)) . "</NOBR></SPAN></U></TD>"; // 10/8/09 // assignments 3/16/09, 3/15/10 - 8/30/10 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` `t` ON (`{$GLOBALS['mysql_prefix']}assigns`.`ticket_id` = `t`.`id`)\n\t\t\tWHERE `responder_id` = '{$row['unit_id']}' AND (`clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $row_assign = mysql_affected_rows() == 0 ? FALSE : stripslashes_deep(mysql_fetch_assoc($result_as)); switch ($row_assign['severity']) { //color tickets by severity case $GLOBALS['SEVERITY_MEDIUM']: $severityclass = 'severity_medium'; break; case $GLOBALS['SEVERITY_HIGH']: $severityclass = 'severity_high'; break; default: $severityclass = 'severity_normal'; break; } switch (mysql_affected_rows()) { // 8/29/10 case 0: $the_disp_str = ""; break; case 1: $the_disp_str = get_disp_status($row_assign) . " "; break; default: // multiples $the_disp_str = "<SPAN CLASS='disp_stat'> " . mysql_affected_rows() . " </SPAN> "; break; } // end switch() $onclick = mysql_affected_rows() > 0 ? " onClick = 'open_tick_window ({$row_assign['ticket_id']})'" : ""; $ass_td = mysql_affected_rows() > 0 ? "<TD WIDTH='20%' CLASS='{$severityclass}' TITLE = '{$row_assign['scope']}' {$onclick} ><NOBR>{$the_disp_str}" . shorten($row_assign['scope'], 24) . "</NOBR></TD>" : "<TD WIDTH='20%'>na</TD>"; unset($result_as); $sidebar_line .= $row['nr_assigned'] . $row_assign ? $ass_td : "<TD WIDTH='20%'>na</TD>"; // status, mobility - 4/14/10 $sidebar_line .= "<TD WIDTH='20%' TITLE = '" . addslashes($the_status) . "'> " . get_status_sel($row['unit_id'], $row['un_status_id'], "u") . ($the_bull = ""); // define the bullet if ($row_track['speed'] > 50) { $the_bull = "<FONT COLOR = 'white'><B>{$GLOBALS['TRACK_2L'][$track_type]}</B></FONT>"; } if ($row_track['speed'] < 50) { $the_bull = "<FONT COLOR = 'green'><B>{$GLOBALS['TRACK_2L'][$track_type]}</B></FONT>"; } if ($row_track['speed'] == 0) { $the_bull = "<FONT COLOR = 'red'><B>{$GLOBALS['TRACK_2L'][$track_type]}</B></FONT>"; } $tip = htmlentities($row['callsign'], ENT_QUOTES); $tip_str = "onMouseover=\\\"Tip('{$tip}')\\\" onmouseout=\\\"UnTip();\\\" "; $sidebar_line .= "<TD WIDTH='2%' {$tip_str}>{$the_bull}</TD>"; // 4/14/10 // as of $the_time = $row['updated']; $the_class = ""; $strike = $strike_end = ""; $the_flag = $name . "_flag"; if ($track_type > 0 && abs($utc - $the_time) > $GLOBALS['TOLERANCE']) { // attempt to identify non-current values $strike = "<STRIKE>"; $strike_end = "</STRIKE>"; } $sidebar_line .= "<TD WIDTH='18%' CLASS='{$the_class}'> {$strike}<SPAN id = '" . $name . "'><NOBR>" . format_sb_date($the_time) . "</NOBR></SPAN>{$strike_end} <SPAN ID = '" . $the_flag . "'></SPAN></TD>"; // 6/17/08 // tab 1 if (my_is_float($row['lat'])) { // position data? 4/29/09 $temptype = $u_types[$row['type_id']]; $the_type = $temptype[0]; // 1/1/09 $tab_1 = "<TABLE CLASS='infowin' width='{$iw_width}'>"; $tab_1 .= "<TR CLASS='even'><TD COLSPAN=2 ALIGN='center'><B>" . addslashes(shorten($row['name'], 48)) . "</B> - " . $the_type . "</TD></TR>"; $tab_1 .= "<TR CLASS='odd'><TD>Description:</TD><TD>" . addslashes(shorten(str_replace($eols, " ", $row['description']), 32)) . "</TD></TR>"; $tab_1 .= "<TR CLASS='even'><TD>Status:</TD><TD>" . $the_status . " </TD></TR>"; $tab_1 .= "<TR CLASS='odd'><TD>Contact:</TD><TD>" . addslashes($row['contact_name']) . " Via: " . addslashes($row['contact_via']) . "</TD></TR>"; $tab_1 .= "<TR CLASS='even'><TD>As of:</TD><TD>" . format_date($the_time) . "</TD></TR>"; // 4/11/10 if (array_key_exists($row['unit_id'], $assigns)) { $tab_1 .= "<TR CLASS='even'><TD CLASS='emph'>Dispatched to:</TD><TD CLASS='emph'><A HREF='main.php?id=" . $tickets[$row['unit_id']] . "'>" . addslashes(shorten($assigns[$row['unit_id']], 20)) . "</A></TD></TR>"; } $tab_1 .= "<TR CLASS='odd'><TD COLSPAN=2 ALIGN='center'>" . $tofac . $todisp . $totrack . $toedit . " <A HREF='{$_SESSION['unitsfile']}?func=responder&view=true&id=" . $row['unit_id'] . "'><U>View</U></A></TD></TR>"; // 08/8/02 $tab_1 .= "</TABLE>"; // tab 2 if ($row_track) { // do all three tabs $tab_2 = "<TABLE CLASS='infowin' width='{$iw_width}'>"; $tab_2 .= "<TR CLASS='even'><TD COLSPAN=2 ALIGN='center'><B>" . $row_track['source'] . "</B></TD></TR>"; $tab_2 .= "<TR CLASS='odd'><TD>Course: </TD><TD>" . $row_track['course'] . ", Speed: " . $row_track['speed'] . ", Alt: " . $row_track['altitude'] . "</TD></TR>"; $tab_2 .= "<TR CLASS='even'><TD>Closest city: </TD><TD>" . $row_track['closest_city'] . "</TD></TR>"; $tab_2 .= "<TR CLASS='odd'><TD>Status: </TD><TD>" . $row_track['status'] . "</TD></TR>"; if (array_key_exists('packet_date', $row_track)) { $tab_2 .= "<TR CLASS='even'><TD>As of: </TD><TD> {$strike}" . format_date($row_track['packet_date']) . "{$strike_end} (UTC)</TD></TR></TABLE>"; } ?> var myinfoTabs = [ new GInfoWindowTab("<?php print nl2brr(addslashes(shorten($row['name'], 10))); ?> ", "<?php print $tab_1; ?> "), new GInfoWindowTab("<?php print $GLOBALS['TRACK_2L'][$track_type]; ?> <?php print addslashes(substr($row_track['source'], -3)); ?> ", "<?php print $tab_2; ?> "), new GInfoWindowTab("Zoom", "<div id='detailmap' class='detailmap'></div>") ]; <?php } else { // two tabs ?> var myinfoTabs = [ new GInfoWindowTab("<?php print nl2brr(addslashes(shorten($row['name'], 10))); ?> ", "<?php print $tab_1; ?> "), new GInfoWindowTab("Zoom", "<div id='detailmap' class='detailmap'></div>") ]; <?php } // end if/else ($row_track) if ($row['lat'] == 0.999999 && $row['lng'] == 0.999999) { // check for no maps mode entries 7/28/10 ?> var the_class = ((map_is_fixed) && (!(mapBounds.containsLatLng(point))))? "emph" : "td_label"; // 4/3/09 do_sidebar ("<?php print $sidebar_line; ?> ", i, the_class, "<?php print $row['icon_str']; ?> "); var dummymarker = createdummyMarker(point, myinfoTabs,<?php print $row['icon']; ?> , i, "<?php print $index; ?> "); // 771 (point,tabs, color, id) map.addOverlay(dummymarker); <?php } else { ?> var the_class = ((map_is_fixed) && (!(mapBounds.containsLatLng(point))))? "emph" : "td_label"; // 4/3/09 do_sidebar ("<?php print $sidebar_line; ?> ", i, the_class, "<?php print $index; ?> "); var marker = createMarker(point, myinfoTabs,<?php print $row['icon']; ?> , i, "<?php print $index; ?> "); // 771 (point,tabs, color, id) map.addOverlay(marker); <?php } } else { print "\tdo_sidebar_nm (\" {$sidebar_line} \" , i, {$row['id']}, '{$index}');\n"; // sidebar only - no map, 11/11/09, 5/12/10 } $i++; // zero-based } // end ========== while() for RESPONDER ========== $source_legend = isset($do_legend) ? "<TD CLASS='emph' ALIGN='left'>Source time</TD>" : "<TD></TD>"; // if any remote data/time 3/24/09 ?> if (!(map_is_fixed)) { // 4/3/09 if (!points) { // any? map.setCenter(new GLatLng(<?php echo get_variable('def_lat'); ?> , <?php echo get_variable('def_lng'); ?> ), <?php echo get_variable('def_zoom'); ?> ); } else { center = bounds.getCenter(); zoom = map.getBoundsZoomLevel(bounds); map.setCenter(center,zoom); } } side_bar_html+= "<TR CLASS='" + colors[i%2] +"'><TD COLSPAN=6> </TD><?php print $source_legend; ?> </TR>"; <?php if (!empty($addon)) { print "\n\tside_bar_html +=\"" . $addon . "\"\n"; } ?> side_bar_html +="</TABLE>\n"; $("side_bar").innerHTML += side_bar_html; // append the assembled side_bar_html contents to the side bar div $("num_units").innerHTML = <?php print $num_units; ?> ; <?php // print "<TABLE BORDER = 4 >{$buttons}</TABLE>"; do_kml(); ?> </SCRIPT> <?php }
function list_facilities($addon = '', $start) { global $iw_width, $u_types, $tolerance; // $assigns = array(); // $tickets = array(); // $query = "SELECT `$GLOBALS[mysql_prefix]assigns`.`ticket_id`, `$GLOBALS[mysql_prefix]assigns`.`responder_id`, `$GLOBALS[mysql_prefix]ticket`.`scope` AS `ticket` FROM `$GLOBALS[mysql_prefix]assigns` LEFT JOIN `$GLOBALS[mysql_prefix]ticket` ON `$GLOBALS[mysql_prefix]assigns`.`ticket_id`=`$GLOBALS[mysql_prefix]ticket`.`id`"; // $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename( __FILE__), __LINE__); // while ($row_as = stripslashes_deep(mysql_fetch_array($result_as))) { // $assigns[$row_as['responder_id']] = $row_as['ticket']; // $tickets[$row_as['responder_id']] = $row_as['ticket_id']; // } // unset($result_as); // $calls = array(); // $calls_nr = array(); // $calls_time = array(); ?> <SCRIPT > var color=0; var colors = new Array ('odd', 'even'); function hideDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = 'none'; $(hide_cont).style.display = 'none'; $(show_cont).style.display = ''; } var params = "f_n=" +controlarea+ "&v_n=h&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function showDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = ''; $(hide_cont).style.display = ''; $(show_cont).style.display = 'none'; } var params = "f_n=" +controlarea+ "&v_n=s&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function do_sidebar (sidebar, id, the_class, fac_id, fac_index) { var fac_id = fac_id; side_bar_html += "<TR CLASS='" + colors[(id)%2] +"' onClick = myclick(" + fac_index + ");>"; // side_bar_html += "<TD CLASS='" + the_class + "'>" + fac_id + sidebar +"</TD></TR>\n"; //10/29/09 removed period side_bar_html += sidebar + "</TR>\n"; //10/29/09 removed period } function myclick(fac_index) { // Responds to sidebar click - view facility data document.view_form.id.value=fac_index; document.view_form.submit(); } function do_sidebar_nm (sidebar, line_no, id, fac_id) { var fac_id = fac_id; var letter = to_str(line_no); side_bar_html += "<TR CLASS='" + colors[(line_no)%2] +"'>"; side_bar_html += "<TD onClick = myclick_nm(" + id + "); >" + fac_id + sidebar +"</TD></TR>\n"; // 1/23/09, 10/29/09 removed period, 11/11/09, 3/15/11 } function myclick_nm(v_id) { // Responds to sidebar click - view responder data document.view_form.id.value=v_id; document.view_form.submit(); } var icons=new Array; // maps type to icon blank <?php $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}fac_types` ORDER BY `id`"; // types in use $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $icons = $GLOBALS['fac_icons']; while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // map type to blank icon id $blank = $icons[$row['icon']]; print "\ticons[" . $row['id'] . "] = " . $row['icon'] . ";\n"; // } unset($result); $dzf = get_variable('def_zoom_fixed'); print "\tvar map_is_fixed = "; print my_is_int($dzf) && $dzf == 2 || my_is_int($dzf) && $dzf == 3 ? "true;\n" : "false;\n"; ?> var side_bar_html = "<TABLE border=0 CLASS='sidebar' ID='tbl_facilities' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.6)); ?> >"; side_bar_html += "<TR class='even'><TD ALIGN='left'><B>Icon</B></TD><TD ALIGN='left'><B><?php print get_text("Handle"); ?> </B></TD><TD ALIGN='left'><B><?php print get_text("Facility"); ?> </B></TD><TD ALIGN='left'><B><?php print get_text("Type"); ?> </B></TD><TD ALIGN='left'><B><?php print get_text("Status"); ?> </B></TD><TD ALIGN='center'><B><?php print get_text("As of"); ?> </B></TD></TR>"; var which; var i = <?php print $start; ?> ; // sidebar/icon index var points = false; // none <?php $eols = array("\r\n", "\n", "\r"); // all flavors of eol // $bulls = array(0 =>"",1 =>"red",2 =>"green",3 =>"white",4 =>"black"); $status_vals = array(); // build array of $status_vals $status_vals[''] = $status_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}fac_status` ORDER BY `id`"; $result_st = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_st = stripslashes_deep(mysql_fetch_assoc($result_st))) { $temp = $row_st['id']; $status_vals[$temp] = $row_st['status_val']; } unset($result_st); $type_vals = array(); // build array of $status_vals $type_vals[''] = $type_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}fac_types` ORDER BY `id`"; $result_ty = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_ty = stripslashes_deep(mysql_fetch_assoc($result_ty))) { $temp = $row_ty['id']; $type_vals[$temp] = $row_ty['name']; } unset($result_ty); $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}';"; // 6/10/11 $result = mysql_query($query); // 6/10/11 $al_groups = array(); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 6/10/11 $al_groups[] = $row['group']; } if (isset($_SESSION['viewed_groups'])) { // 6/10/11 $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($al_groups as $grp) { // 6/10/11 $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($curr_viewed as $grp) { // 6/10/11 $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } $where2 .= "AND `a`.`type` = 3"; // 6/10/11 // 3/15/11, 6/10/11 $query = "SELECT *,UNIX_TIMESTAMP(updated) AS updated,\n\t\t`t`.`id` AS `type_id`, \t\n\t\t`f`.id AS `id`, \n\t\t`f`.status_id AS status_id,\n\t\t`f`.description AS facility_description,\n\t\t`t`.name AS fac_type_name, \n\t\t`f`.name AS name, `f`.street AS street,\n\t\t`f`.city AS city, `f`.state AS state \n\t\tFROM `{$GLOBALS['mysql_prefix']}facilities` `f`\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `f`.`id` = a.resource_id )\t\t\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}fac_types` `t` ON `f`.type = `t`.id \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}fac_status` `s` ON `f`.status_id = `s`.id \n\t\t{$where2} GROUP BY `f`.id ORDER BY `f`.type ASC"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_facilities = mysql_affected_rows(); $i = 0; // counter // ============================================================================= $utc = gmdate("U"); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // ========== major while() for Facility ========== $fac_gps = get_allocates(3, $row['id']); // 6/10/11 $grp_names = "Groups Assigned: "; // 6/10/11 $y = 0; // 6/10/11 foreach ($fac_gps as $value) { // 6/10/11 $counter = count($fac_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $grp_names .= " / "; $the_bg_color = $GLOBALS['FACY_TYPES_BG'][$row['icon']]; // 2/8/10 $the_text_color = $GLOBALS['FACY_TYPES_TEXT'][$row['icon']]; // 2/8/10 $the_on_click = my_is_float($row['lat']) ? " onClick = myclick({$i}); " : " onClick = myclick_nm({$row['id']}); "; // 3/15/11 $got_point = FALSE; print "\n\t\tvar i={$i};\n"; if (is_guest()) { $toedit = $tomail = $toroute = ""; } else { $toedit = " <A HREF='facilities_nm.php?func=responder&edit=true&id=" . $row['id'] . "'><U>Edit</U></A>"; $tomail = " <SPAN onClick = 'do_mail_in_win({$row['id']})'><U><B>Email</B></U></SPAN>"; $toroute = " <A HREF='routes_nm.php?fac_id=" . $row['id'] . "'><U>Route To Facility</U></A>"; } $temp = $row['status_id']; $the_status = array_key_exists($temp, $status_vals) ? $status_vals[$temp] : "??"; $temp_type = $row['type_id']; $the_type = array_key_exists($temp_type, $type_vals) ? $type_vals[$temp_type] : "??"; $update_error = strtotime('now - 6 hours'); // set the time for silent setting // name $name = $row['name']; // 10/8/09 $fac_index = $row['id']; // 10/8/09 $temp = explode("/", $name); $display_name = $temp[0]; $icon_str = $row['icon_str']; $sidebar_line = "<TD TITLE = '{$icon_str}'>" . $icon_str . "</TD>"; // 10/8/09 $handle = addslashes($row['handle']); // 5/30/10 $sidebar_line .= "<TD TITLE = '{$handle}'>" . shorten($handle, 16) . "</TD>"; // 10/8/09 $sidebar_line .= "<TD TITLE = '" . $grp_names . "Facility Name: " . addslashes($display_name) . "' {$the_on_click}><U><SPAN STYLE='background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};'>" . addslashes(shorten($display_name, 40)) . "</SPAN></U> </TD><TD>{$the_type} </TD>"; // 6/10/11 $sidebar_line .= "<TD CLASS='td_data' TITLE = '" . addslashes($the_status) . "'> " . get_status_sel($row['id'], $row['status_id'], 'f') . " </TD>"; // 3/15/11 // as of $strike = $strike_end = ""; $the_time = $row['updated']; $the_class = "td_data"; $strike = $strike_end = ""; $sidebar_line .= "<TD CLASS='{$the_class}'> {$strike}" . format_sb_date($the_time) . "{$strike_end}</TD>"; $name = $row['name']; // 10/8/09 $fac_index = $row['id']; // 10/8/09 $temp = explode("/", $name); $index = substr($temp[count($temp) - 1], -6, strlen($temp[count($temp) - 1])); // 3/19/11 ?> var fac_id = "<?php print $index; ?> "; // 10/8/09 var fac_index = "<?php print $fac_index; ?> "; // 10/8/09 var the_class = "td_label"; <?php print "\tdo_sidebar (\" {$sidebar_line} \", i, the_class, fac_id, fac_index);\n"; $i++; // zero-based } // end ========== while() for Facility ========== ?> var buttons_html = ""; <?php if (!empty($addon)) { print "\n\tbuttons_html +=\"" . $addon . "\"\n"; } ?> side_bar_html +="</TABLE>\n"; $("side_bar").innerHTML += side_bar_html; // append the assembled side_bar_html contents to the side_bar div $("buttons").innerHTML = buttons_html; // append the assembled side_bar_html contents to the side_bar div $("num_facilities").innerHTML = <?php print $num_facilities; ?> ; </SCRIPT> <?php }
} elseif (is_admin()) { print "<TR CLASS='odd' VALIGN='top'>"; print "<TD CLASS='td_label'>" . get_text('Group') . "</A>: "; print "<SPAN id='expand_gps' onClick=\"\$('groups_sh').style.display = 'inline-block'; \$('expand_gps').style.display = 'none'; \$('collapse_gps').style.display = 'inline-block';\" style = 'display: inline-block; font-size: 16px; border: 1px solid;'><B>+</B></SPAN>"; print "<SPAN id='collapse_gps' onClick=\"\$('groups_sh').style.display = 'none'; \$('collapse_gps').style.display = 'none'; \$('expand_gps').style.display = 'inline-block';\" style = 'display: none; font-size: 16px; border: 1px solid;'><B>-</B></SPAN>"; print "</TD><TD COLSPAN = 3>"; $alloc_groups = implode(',', get_allocates(1, $_SESSION['user_id'])); // 6/10/11 print get_all_group_butts(get_allocates(4, $_SESSION['user_id'])); // 6/10/11 print "</TD></TR>"; } else { print "<DIV style='display: none'>"; $alloc_groups = implode(',', get_allocates(4, $_SESSION['user_id'])); // 6/10/11 print get_all_group_butts(get_allocates(4, $_SESSION['user_id'])); // 6/10/11 print "</DIV"; } ?> <TR VALIGN="baseline" CLASS="even"><TD CLASS="td_label" ALIGN="right">Unit: </TD><TD><?php print $sel_str; ?> </TD></TR> <TR VALIGN="baseline" CLASS="spacer"><TD class="spacer" COLSPAN=4 ALIGN='center'> </TD></TR> <TR VALIGN="baseline" CLASS="odd"><TD CLASS="td_label" ALIGN="right">Last name: </TD> <TD><INPUT ID="ID3" MAXLENGTH="32" SIZE=32 type="text" NAME="frm_name_l" VALUE="" onChange = "this.value=this.value.trim()"></TD> <TD CLASS="td_label" ALIGN="right">First: </TD> <TD><INPUT ID="ID4" MAXLENGTH="32" SIZE=32 type="text" NAME="frm_name_f" VALUE="" onChange = "this.value=this.value.trim()"> </TD></TR>
function list_tickets($sort_by_field = '', $sort_value = '', $my_offset = 0) { // list tickets =================================================== $time = microtime(true); // Gets microseconds global $istest, $units_side_bar_height, $do_blink, $nature, $disposition, $patient, $incident, $incidents; // 12/3/10 $can_edit = get_can_edit(); $query = "SELECT `id` FROM `{$GLOBALS['mysql_prefix']}responder` LIMIT 1"; // 1/28/11 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $any_units = mysql_affected_rows() == 1; $query_sched = "SELECT * FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE (\n\t\t`status`='{$GLOBALS['STATUS_OPEN']}' OR\n\t\t`status`='{$GLOBALS['STATUS_SCHEDULED']})' \n\t\t LIMIT 1"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $any_open_tickets = mysql_affected_rows() == 1; $query_sched = "SELECT * FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE (\n\t\t`status`='{$GLOBALS['STATUS_CLOSED']}')\n\t\t LIMIT 1"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $any_closed_tickets = mysql_affected_rows() == 1; $query = "SELECT `id` FROM `{$GLOBALS['mysql_prefix']}facilities` LIMIT 1"; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $any_facilities = mysql_affected_rows() == 1; unset($result); @session_start(); // $captions = array("Current situation", "{$incidents} closed today", "{$incidents} closed yesterday+", "{$incidents} closed this week", "{$incidents} closed last week", "{$incidents} closed last week+", "{$incidents} closed this month", "{$incidents} closed last month", "{$incidents} closed this year", "{$incidents} closed last year", "Scheduled {$incidents}"); $by_severity = array(0, 0, 0); // counters // 5/2/10 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}' ORDER BY `id` ASC;"; // 5/4/11 $result = mysql_query($query); // 5/4/11 $al_groups = array(); $al_names = ""; while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 5/4/11 $al_groups[] = $row['group']; $query2 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}region` WHERE `id`= '{$row['group']}';"; // 5/4/11 $result2 = mysql_query($query2); // 4/18/11 while ($row2 = stripslashes_deep(mysql_fetch_assoc($result2))) { // // 5/4/11 $al_names .= $row2['group_name'] . ", "; } } if (is_super()) { // 5/4/11 $al_names .= "Superadmin Level"; } if (array_key_exists('func', $_GET) && $_GET['func'] == 10) { // 3/15/11 $func = 10; } else { extract($_GET); } $cwi = get_variable('closed_interval'); // closed window interval in hours if (isset($_SESSION['list_type'])) { $func = $_SESSION['list_type']; } // 12/02/10 persistance for the tickets list // $get_status = ((empty($_GET) || ((!empty($_GET)) && (empty ($_GET['status'])))) ) ? "" : $_GET['status'] ; $get_sortby = empty($_GET) || !empty($_GET) && empty($_GET['sortby']) ? "" : $_GET['sortby']; $get_offset = empty($_GET) || !empty($_GET) && empty($_GET['offset']) ? "" : $_GET['offset']; if (!isset($_GET['status'])) { $open = "Open"; } else { $open = isset($_GET['status']) && $_GET['status'] == $GLOBALS['STATUS_OPEN'] ? "Open" : ""; $open = isset($_GET['status']) && $_GET['status'] == $GLOBALS['STATUS_SCHEDULED'] ? "Scheduled" : ""; // 11/29/10 } if (isset($_SESSION['viewed_groups'])) { // 5/4/11 $curr_viewed = explode(",", $_SESSION['viewed_groups']); } else { $curr_viewed = $al_groups; } $curr_names = ""; // 5/4/11 $z = 0; // 5/4/11 foreach ($curr_viewed as $grp_id) { // 5/4/11 $counter = count($curr_viewed) > $z + 1 ? ", " : ""; $curr_names .= get_groupname($grp_id); $curr_names .= $counter; $z++; } $heading = $captions[$func] . " - " . get_variable('map_caption'); $regs_string = "<FONT SIZE='-1'>Allocated " . get_text("Regions") . ": " . $al_names . " | Currently Viewing " . get_text("Regions") . ": " . $curr_names . "</FONT>"; // 5/4/11 $eols = array("\r\n", "\n", "\r"); // all flavors of eol $query = "SELECT `id` FROM `{$GLOBALS['mysql_prefix']}responder`"; // 5/12/10 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), __FILE__, __LINE__); unset($result); $required = 48 + mysql_affected_rows() * 22; // derived by trial and error - emphasis the latter = 7/18/10 $the_large_height = (int) min(round($units_side_bar_height * $_SESSION['scr_height'] * 2), $required); // see main for $units_side_bar_height value $the_height = (int) min(round($units_side_bar_height * $_SESSION['scr_height']), $required); // see main for $units_side_bar_height value // $col_width = (int) floor($_SESSION['scr_width'] * .48); $buttons_width = (int) get_variable('map_width') - 50; $show_controls = isset($_SESSION['hide_controls']) && $_SESSION['hide_controls'] == "s" ? "" : "none"; // 3/15/11 $col_butt = isset($_SESSION['hide_controls']) && $_SESSION['hide_controls'] == "s" ? "" : "none"; // 3/15/11 $exp_butt = isset($_SESSION['hide_controls']) && $_SESSION['hide_controls'] == "h" ? "" : "none"; // 3/15/11 $show_resp = isset($_SESSION['resp_list']) && $_SESSION['resp_list'] == "s" ? "" : "none"; // 3/15/11 $resp_col_butt = isset($_SESSION['resp_list']) && $_SESSION['resp_list'] == "s" ? "" : "none"; // 3/15/11 $resp_exp_butt = isset($_SESSION['resp_list']) && $_SESSION['resp_list'] == "h" ? "" : "none"; // 3/15/11 $show_facs = isset($_SESSION['facs_list']) && $_SESSION['facs_list'] == "s" ? "" : "none"; // 3/15/11 $facs_col_butt = isset($_SESSION['facs_list']) && $_SESSION['facs_list'] == "s" ? "" : "none"; // 3/15/11 $facs_exp_butt = isset($_SESSION['facs_list']) && $_SESSION['facs_list'] == "h" ? "" : "none"; // 3/15/11 $user_level = is_super() ? 9999 : $_SESSION['user_id']; $regions_inuse = get_regions_inuse($user_level); $group = get_regions_inuse_numbers($user_level); // dump($group); // dump(get_tickets_allocated($group)); ?> <TABLE BORDER=0> <A NAME=top></a> <TR CLASS='even'><TD COLSPAN='3' ALIGN='center'><FONT CLASS='header'><?php print $heading; ?> </FONT><SPAN ID='sev_counts' STYLE = 'margin-left: 40px'></SPAN></TD></TR> <!-- 5/2/10 --> <TR CLASS='header'><TD COLSPAN='3' ALIGN='center'><SPAN ID='region_flags' style='background: #00FFFF; font-weight: bold;'></SPAN></TD></TR> <!-- 5/2/10, 3/15/11, 5/4/11 --> <TR CLASS='spacer'><TD CLASS='spacer' COLSPAN='3' ALIGN='center'> </TD></TR> <!-- 3/15/11 --> <TR><TD VALIGN='TOP' align='left'> <TABLE><TR class = 'heading'><TH width = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> ALIGN='center' COLSPAN='99'>Incidents </TH></TR> <TR><TD> <DIV ID = 'side_bar_header' style="height: 60px; width: <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> ;"></DIV> <DIV ID = 'side_bar' style="max-height: <?php print $the_large_height; ?> px; min-height: 100px; overflow-y: scroll; overflow-x: hidden;"></DIV> </TD></TR></TABLE> <TD style="width: 20px;"> </TD> <TD VALIGN='top' align='left'> <TABLE><TR class = 'heading'><TH width = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> ALIGN='center' COLSPAN='99'>Responders </TH></TR><TR><TD> <!-- 3/15/11 --> <DIV ID = 'side_bar_r' style="max-height: <?php print $the_height; ?> px; min-height: 200px; overflow-y: scroll; overflow-x: hidden;"></DIV> <DIV ID = 'side_bar_rl'></DIV> <!-- 3/15/11 --> <DIV ID = 'units_legend'></DIV> </TD></TR></TABLE> <TABLE><TR class = 'heading'><TH width = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> ALIGN='center' COLSPAN='99'>Facilities </TH></TR><TR><TD> <!-- 3/15/11 --> <DIV ID = 'side_bar_f' style="max-height: <?php print $the_height; ?> px; min-height: 200px; overflow-y: scroll; overflow-x: hidden;"></DIV> <DIV ID = 'facs_legend'></DIV> </TD></TD></TR></TABLE> </TD></TR> <!-- 3/15/11 --> <TR><TD CLASS='td_label' COLSPAN='99' ALIGN='center'> <A HREF="mailto:info@TicketsCAD.org?subject=Question/Comment on Tickets Dispatch System"><u>Contact us</u> <IMG SRC="mail.png" BORDER="0" STYLE="vertical-align: text-bottom"></A> </TD></TR></TABLE> <FORM NAME='unit_form' METHOD='get' ACTION='<?php echo $_SESSION['unitsfile']; ?> '> <INPUT TYPE='hidden' NAME='func' VALUE='responder'> <INPUT TYPE='hidden' NAME='view' VALUE=''> <INPUT TYPE='hidden' NAME='edit' VALUE=''> <INPUT TYPE='hidden' NAME='id' VALUE=''> </FORM> <FORM NAME='tick_form' METHOD='get' ACTION='edit.php'> <!-- 11/27/09 --> <INPUT TYPE='hidden' NAME='id' VALUE=''> </FORM> <FORM NAME='sort_form' METHOD='post' ACTION='main.php'> <!-- 6/11/10 --> <INPUT TYPE='hidden' NAME='order' VALUE=''> </FORM> <FORM NAME='fac_sort_form' METHOD='post' ACTION='main.php'> <!-- 3/15/11 --> <INPUT TYPE='hidden' NAME='forder' VALUE=''> </FORM> <FORM NAME='facy_form' METHOD='get' ACTION='<?php echo $_SESSION['facilitiesfile']; ?> '> <!-- 11/27/09 --> <INPUT TYPE='hidden' NAME='id' VALUE=''> <INPUT TYPE='hidden' NAME='edit' VALUE=''> <INPUT TYPE='hidden' NAME='view' VALUE=''> </FORM> <SCRIPT> //================================= 7/18/10 $('region_flags').innerHTML = "<?php print $regs_string; ?> "; // 5/2/10 <?php function get_buttons($user_id) { // 5/3/11 $regs_viewed = ""; if (isset($_SESSION['viewed_groups'])) { $regs_viewed = explode(",", $_SESSION['viewed_groups']); } $query2 = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$user_id}' ORDER BY `group`"; // 5/3/11 $result2 = mysql_query($query2) or do_error($query2, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $al_buttons = ""; while ($row2 = stripslashes_deep(mysql_fetch_assoc($result2))) { // 5/3/11 if (!empty($regs_viewed)) { if (in_array($row2['group'], $regs_viewed)) { $al_buttons .= "<DIV style='display: block;'><INPUT TYPE='checkbox' CHECKED name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } else { $al_buttons .= "<DIV style='display: block;'><INPUT TYPE='checkbox' name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } } else { $al_buttons .= "<DIV style='display: block;'><INPUT TYPE='checkbox' CHECKED name='frm_group[]' VALUE='{$row2['group']}'></INPUT>" . get_groupname($row2['group']) . " </DIV>"; } } // dump($al_buttons); return $al_buttons; } if (get_num_groups() && COUNT(get_allocates(4, $_SESSION['user_id'])) > 1) { // 6/10/11 ?> side_bar_html= ""; side_bar_html+="<TABLE><TR class='heading_2'><TH width = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> ALIGN='center' COLSPAN='99'>Viewed <?php print get_text("Regions"); ?> </TH></TR><TR class='even'><TD COLSPAN=99 CLASS='td_label' ><form name='region_form' METHOD='post' action='main.php'><DIV>"; side_bar_html += "<?php print get_buttons($_SESSION['user_id']); ?> "; side_bar_html+="</DIV></form></TD></TR><TR><TD> </TD></TR><TR><TD ALIGN='center'><INPUT TYPE='button' VALUE='Update' onClick='form_validate(document.region_form);'></TD></TR></TABLE>"; $("region_boxes").innerHTML = side_bar_html; <?php } ?> spe=500; NameOfYourTags="mi"; swi=1; na=document.getElementsByName(NameOfYourTags); doBlink(); function doBlink() { if (swi == 1) { sho="visible"; swi=0; } else { sho="hidden"; swi=1; } for(i=0;i<na.length;i++) { na[i].style.visibility=sho; } setTimeout("doBlink()", spe); } function writeConsole(content) { top.consoleRef=window.open('','myconsole', 'width=800,height=250' +',menubar=0' +',toolbar=0' +',status=0' +',scrollbars=1' +',resizable=1') top.consoleRef.document.writeln('<html><head><title>Console</title></head>' +'<body bgcolor=white onLoad="self.focus()">' +content +'</body></html>' ) // end top.consoleRef.document.writeln() top.consoleRef.document.close(); } // end function writeConsole(content) function isNull(val) { // checks var stuff = null; return val === null; } function to_session(the_name, the_value) { // generic session variable writer - 3/8/10, 4/4/10 function local_handleResult(req) { // the called-back function } // end function local handleResult var params = "f_n=" + the_name; // 1/20/09 params += "&f_v=" + the_value; // 4/4/10 sendRequest ('do_session_get.php',local_handleResult, params); // does the work via POST } function to_server(the_unit, the_status) { // write unit status data via ajax xfer var querystr = "frm_responder_id=" + the_unit; querystr += "&frm_status_id=" + the_status; var url = "as_up_un_status.php?" + querystr; // var payload = syncAjax(url); // if (payload.substring(0,1)=="-") { alert ("<?php print __LINE__; ?> : msg failed "); return false; } else { parent.frames['upper'].show_msg ('Unit status update applied!') return true; } // end if/else (payload.substring(... ) } // end function to_server() function to_server_fac(the_unit, the_status) { // 3/15/11 // 3/15/11 var querystr = "frm_responder_id=" + the_unit; querystr += "&frm_status_id=" + the_status; var url = "as_up_fac_status.php?" + querystr; var payload = syncAjax(url); if (payload.substring(0,1)=="-") { alert ("<?php print __LINE__; ?> : msg failed "); return false; } else { parent.frames['upper'].show_msg ('Facility status update applied!') return true; } // end if/else (payload.substring(... ) } // end function to_server_fac() function syncAjax(strURL) { // synchronous ajax function if (window.XMLHttpRequest) { AJAX=new XMLHttpRequest(); } else { AJAX=new ActiveXObject("Microsoft.XMLHTTP"); } if (AJAX) { AJAX.open("GET", strURL, false); AJAX.send(null); // e return AJAX.responseText; } else { alert ("<?php print __LINE__; ?> : failed"); return false; } } // end function sync Ajax(strURL) var starting = false; function do_mail_win(the_name, the_addrs) { if(starting) {return;} // dbl-click catcher starting=true; var url = (isNull(the_name))? "do_unit_mail.php?" : "do_unit_mail.php?name=" + escape(the_name) + "&addrs=" + escape(the_addrs); // newwindow_mail=window.open(url, "mail_edit", "titlebar, location=0, resizable=1, scrollbars, height=320,width=720,status=0,toolbar=0,menubar=0,location=0, left=100,top=300,screenX=100,screenY=300"); if (isNull(newwindow_mail)) { alert ("Email edit operation requires popups to be enabled -- please adjust your browser options."); return; } newwindow_mail.focus(); starting = false; } // end function do mail_win() function do_fac_mail_win(the_name, the_addrs) { // 3/8/10 if(starting) {return;} // dbl-click catcher starting=true; var url = (isNull(the_name))? "do_fac_mail.php?" : "do_fac_mail.php?name=" + escape(the_name) + "&addrs=" + escape(the_addrs); // newwindow_mail=window.open(url, "mail_edit", "titlebar, location=0, resizable=1, scrollbars, height=320,width=720,status=0,toolbar=0,menubar=0,location=0, left=100,top=300,screenX=100,screenY=300"); if (isNull(newwindow_mail)) { alert ("Email edit operation requires popups to be enabled -- please adjust your browser options."); return; } newwindow_mail.focus(); starting = false; } // end function do mail_win() function do_close_tick(the_id) { // 3/15/11 if(starting) {return;} // dbl-click catcher starting=true; var url = "close_in.php?ticket_id=" + escape(the_id); // newwindow_close = window.open(url, "close_ticket", "titlebar, location=0, resizable=1, scrollbars, height=300, width=700, status=0, toolbar=0, menubar=0, left=100,top=100,screenX=100,screenY=100"); if (isNull(newwindow_close)) { alert ("Close Ticket operation requires popups to be enabled -- please adjust your browser options."); return; } newwindow_close.focus(); starting = false; } function to_str(instr) { // 0-based conversion - 2/13/09 function ord( string ) { return (string+'').charCodeAt(0); } function chr( ascii ) { return String.fromCharCode(ascii); } function to_char(val) { return(chr(ord("A")+val)); } var lop = (instr % 26); // low-order portion, a number var hop = ((instr - lop)==0)? "" : to_char(((instr - lop)/26)-1) ; // high-order portion, a string return hop+to_char(lop); } function sendRequest(url,callback,postData) { // 2/14/09 var req = createXMLHTTPObject(); if (!req) return; var method = (postData) ? "POST" : "GET"; req.open(method,url,true); req.setRequestHeader('User-Agent','XMLHTTP/1.0'); if (postData) req.setRequestHeader('Content-type','application/x-www-form-urlencoded'); req.onreadystatechange = function () { if (req.readyState != 4) return; if (req.status != 200 && req.status != 304) { <?php if ($istest) { print "\t\t\talert('HTTP error ' + req.status + '" . __LINE__ . "');\n"; } ?> return; } callback(req); } if (req.readyState == 4) return; req.send(postData); } var XMLHttpFactories = [ function () {return new XMLHttpRequest() }, function () {return new ActiveXObject("Msxml2.XMLHTTP") }, function () {return new ActiveXObject("Msxml3.XMLHTTP") }, function () {return new ActiveXObject("Microsoft.XMLHTTP") } ]; function createXMLHTTPObject() { var xmlhttp = false; for (var i=0;i<XMLHttpFactories.length;i++) { try { xmlhttp = XMLHttpFactories[i](); } catch (e) { continue; } break; } return xmlhttp; } function get_chg_disp_tr() { // 5/5/11, 6/10/11 var chg_disp_tr =""; chg_disp_tr +="\t\t<FORM NAME = 'frm_interval_sel' STYLE = 'display:inline' >\n"; chg_disp_tr +="\t\t<SELECT NAME = 'frm_interval' onChange = 'do_listtype(this.value);'>\n"; chg_disp_tr +="\t\t<OPTION VALUE='99' SELECTED><?php print get_text("Change display"); ?> </OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='0'><?php print get_text("Current situation"); ?> </OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='1'><?php print $incidents; ?> closed today</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='2'><?php print $incidents; ?> closed yesterday+</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='3'><?php print $incidents; ?> closed this week</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='4'><?php print $incidents; ?> closed last week</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='5'><?php print $incidents; ?> closed last week+</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='6'><?php print $incidents; ?> closed this month</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='7'><?php print $incidents; ?> closed last month</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='8'><?php print $incidents; ?> closed this year</OPTION>\n"; chg_disp_tr +="\t\t<OPTION VALUE='9'><?php print $incidents; ?> closed last year</OPTION>\n"; chg_disp_tr +="\t\t</SELECT>\n</FORM>\n"; chg_disp_tr +="\t\t<SPAN ID = 'btn_go' onClick='document.to_listtype.submit()' CLASS='conf_button' STYLE = 'margin-left: 10px; display:none'><U>Next</U></SPAN>"; chg_disp_tr +="\t\t<SPAN ID = 'btn_can' onClick='hide_btns_closed(); hide_btns_scheduled(); ' CLASS='conf_button' STYLE = 'margin-left: 10px; display:none'><U>Cancel</U></SPAN>"; return chg_disp_tr; } // end function get chg_disp_tr() <?php $quick = !is_guest() && intval(get_variable('quick') == 1); // 11/27/09 print $quick ? "var quick = true;\n" : "var quick = false;\n"; ?> var tr_id_fixed_part = "tr_id_"; // 3/2/10 var colors = new Array ('odd', 'even'); function set_initial_pri_disp() { } function set_categories() { // 12/03/10 - checks current session values and sets checkboxes and view states for hide and show. } function set_fac_categories() { // 12/03/10 - checks current session values and sets checkboxes and view states for hide and show. } function show_hide_rows(instr) { // instr is '' or 'none' - 3/8/10 for (i = 0; i< rowIds.length; i++) { var rowId = rowIds[i]; // row id - 3/3/10 $(rowId).style.display = instr; // hide each 'unavailable' row } } // end function show_hide_rows() function h_handleResult(req) { // the 'called-back' persist function - hide hide_Units(); } var starting = false; function checkArray(form, arrayName) { // 5/3/11 var retval = new Array(); for(var i=0; i < form.elements.length; i++) { var el = form.elements[i]; if(el.type == "checkbox" && el.name == arrayName && el.checked) { retval.push(el.value); } } return retval; } function checkForm(form) { // 5/3/11 var errmsg=""; var itemsChecked = checkArray(form, "frm_group[]"); if(itemsChecked.length > 0) { var params = "f_n=viewed_groups&v_n=" +itemsChecked+ "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // 3/15/11 var url = "persist3.php"; // 3/15/11 sendRequest (url, fvg_handleResult, params); // form.submit(); } else { errmsg+= "\tYou cannot Hide all the regions\n"; if (errmsg!="") { alert ("Please correct the following and re-submit:\n\n" + errmsg); return false; } } } function fvg_handleResult(req) { // 5/4/11 The persist callback function for viewed groups. document.region_form.submit(); } function form_validate(theForm) { // 5/3/11 // alert("Validating"); checkForm(theForm); } // end function validate(theForm) function do_mail_fac_win(id) { // Facility email 9/22/09 if(starting) {return;} starting=true; var url = "do_fac_mail.php?fac_id=" + id; newwindow_in=window.open (url, 'Email_Window', 'titlebar, resizable=1, scrollbars, height=300,width=600,status=0,toolbar=0,menubar=0,location=0, left=50,top=150,screenX=100,screenY=300'); if (isNull(newwindow_in)) { alert ("This requires popups to be enabled. Please adjust your browser options."); return; } newwindow_in.focus(); starting = false; } function s_handleResult(req) { // the 'called-back' persist function - show show_Units(); } function do_sel_update (in_unit, in_val) { // 12/17/09 to_server(in_unit, in_val); } function do_sel_update_fac (in_unit, in_val) { // 3/15/11 to_server_fac(in_unit, in_val); } function do_sidebar_unit (instr, id, sym, myclass, tip_str) { // sidebar_string, sidebar_index, row_class, icon_info, mouseover_str - 1/7/09 var tr_id = tr_id_fixed_part + id; if (isNull(tip_str)) { side_bar_html += "<TR ID = '" + tr_id + "' CLASS='" + colors[(id)%2] +"'><TD CLASS='" + myclass + "' onClick = myclick(" + id + "); ALIGN = 'left'>" + (sym) + "</TD>"+ instr +"</TR>\n"; // 2/6/10 moved onclick to TD } else { side_bar_html += "<TR ID = '" + tr_id + "' onMouseover=\"Tip('" + tip_str + "');\" onmouseout=\"UnTip();\" CLASS='" + colors[(id+1)%2] +"'><TD CLASS='" + myclass + "' onClick = myclick(" + id + "); ALIGN = 'left'>" + (sym) + "</TD>"+ instr +"</TR>\n"; // 1/3/10 added tip param } } // end function do sidebar_unit () <?php $js_func = $can_edit ? "myclick_ed_tick" : "open_tick_window"; // 4/28/11 ?> function open_tick_window (id) { // 5/2/10 var url = "single.php?ticket_id="+ id; var tickWindow = window.open(url, 'mailWindow', 'resizable=1, scrollbars, height=600, width=650, left=100,top=100,screenX=100,screenY=100'); tickWindow.focus(); } function do_patient(id) { // patient edit 6/23/11 if(starting) {return;} starting=true; var url = "patient_w.php?action=list&ticket_id=" + id; newwindow=window.open (url, 'Patient_Window', 'titlebar, resizable=1, scrollbars, height=300,width=550,status=0,toolbar=0,menubar=0,location=0, left=50,top=150,screenX=50,screenY=150'); if (isNull(newwindow)) { alert ("This requires popups to be enabled. Please adjust your browser options."); return; } newwindow.focus(); starting = false; } function myclick(id) { // Responds to sidebar click, then triggers listener above - note [i] // GEvent.trigger(gmarkers[id], "click"); location.href = "#top"; } function do_sidebar (instr, id, sym, myclass, tip_str) { // sidebar_string, sidebar_index, row_class, icon_info, mouseover_str - 1/7/09 // alert(<?php echo __LINE__; ?> ); var tr_id = tr_id_fixed_part + id; side_bar_html += "<TR onClick = 'onclick_do_unit(" + id + ");' ID = '" + tr_id + "' onMouseover=\"Tip('" + tip_str + "');\" onmouseout=\"UnTip();\" CLASS='" + colors[id%2] +"'>"; side_bar_html += "<TD WIDTH='5%' CLASS='" + myclass + "' ALIGN = 'left'>" + (sym) + "</TD>"+ instr +"</TR>\n"; // 1/3/10 added tip param } // end function do sidebar () function do_sidebar_t_ed (instr, line_no, rcd_id, letter, tip_str) { // ticket edit, tip str added 1/3/10 side_bar_html += "<TR onMouseover=\"Tip('" + tip_str.replace("'", "") + "');\" onmouseout=\"UnTip();\" CLASS='" + colors[(line_no+1)%2] +"'>"; side_bar_html += "<TD WIDTH='5%'>" + letter + "</TD>" + instr +"</TR>\n"; // 2/13/09, 10/29/09 removed period } function do_sidebar_u_iw (instr, id, sym, myclass) { // constructs unit incident sidebar row - 1/7/09 var tr_id = tr_id_fixed_part + id; side_bar_html += "<TR ID = '" + tr_id + "' CLASS='" + colors[id%2] +"' onClick = myclick(" + id + ");><TD CLASS='" + myclass + "'>" + (sym) + "</TD>"+ instr +"</TR>\n"; // 10/30/09 removed period } // end function do sidebar () function myclick_ed_tick(id) { // Responds to sidebar click - edit ticket data <?php $the_action = is_guest() ? "main.php" : "edit.php"; 2 / 27 / 10; ?> document.tick_form.id.value=id; // 11/27/09 document.tick_form.action='<?php print $the_action; ?> '; // 11/27/09 document.tick_form.submit(); } function do_sidebar_u_ed (sidebar, line_no, on_click, letter) { // unit edit var tr_id = tr_id_fixed_part + line_no; side_bar_html += "<TR ID = '" + tr_id + "' CLASS='" + colors[(line_no+1)%2] +"'>"; side_bar_html += "<TD onClick = '" + on_click+ "' CLASS='td_data'>" + letter + "</TD>" + sidebar +"</TR>\n"; // 2/13/09, 10/29/09 removed period } function onclick_do_unit(id) { // Responds to sidebar click - view/edit responder data document.unit_form.id.value=id; // 11/27/09 <?php $the_func = $can_edit ? "edit" : "view"; // 4/30/11 ?> document.unit_form.<?php print $the_func; ?> .value="true"; document.unit_form.submit(); } function do_sidebar_fac_ed (fac_instr, fac_id, fac_sym, myclass, line_no) { // constructs facilities sidebar row 9/22/09 side_bar_html += "<TR CLASS='" + colors[line_no%2] +"'>"; side_bar_html += "<TD onClick = fac_click_ed(" + fac_id + ");>" + (fac_sym) + "</TD>"; side_bar_html += fac_instr +"</TR>\n"; // 10/30/09 removed period location.href = "#top"; } // end function do sidebar_fac_iw () function do_sidebar_fac_iw (fac_instr, fac_id, fac_sym, myclass) { // constructs facilities sidebar row 9/22/09 side_bar_html += "<TR CLASS='" + colors[fac_id%2] +"' WIDTH = '100%';>" side_bar_html += "<TD CLASS='" + myclass + "'>" + (fac_sym) + "</TD>"; side_bar_html += fac_instr +"</TR>\n"; // 10/30/09 removed period location.href = "#top"; } // end function do sidebar_fac () function fac_click_iw(fac_id) { // Responds to facilities sidebar click, triggers listener above 9/22/09 GEvent.trigger(fmarkers[fac_id], "click"); location.href = "#top"; } function fac_click_ed(id) { // Responds to facility sidebar click - edit data document.facy_form.id.value=id; // 11/27/09 if (quick) { document.facy_form.edit.value="true"; } else { document.facy_form.view.value="true"; } document.facy_form.submit(); } function fac_click_vw(id) { // Responds to facility sidebar click - view data document.facy_form.id.value=id; // 11/27/09 document.facy_form.view.value="true"; document.facy_form.submit(); } var points = false; function do_add_note (id) { // 8/12/09 var url = "add_note.php?ticket_id="+ id; var noteWindow = window.open(url, 'mailWindow', 'resizable=1, scrollbars, height=240, width=600, left=100,top=100,screenX=100,screenY=100'); noteWindow.focus(); } function do_sort_sub(sort_by){ // 6/11/10 document.sort_form.order.value = sort_by; document.sort_form.submit(); } function do_fac_sort_sub(sort_by){ // 3/15/11 document.fac_sort_form.forder.value = sort_by; document.fac_sort_form.submit(); } function do_sched_jobs(choice) { // 11/29/10 - added Scheduled tickets to menu. 12/02/10 Added persistance for the list view var params = "f_n=list_type&v_n=" + choice + "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // flag 1, value h var url = "persist.php"; sendRequest (url, cs_handleResult, params); // ($to_str, $text, $ticket_id) document.to_listtype.func.value=choice; } // end function do_listtype() function do_curr_jobs(choice) { // 11/29/10 - added Scheduled tickets to menu. 12/02/10 Added persistance for the list view var params = "f_n=list_type&v_n=" + choice + "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // flag 1, value h var url = "persist.php"; sendRequest (url, cs_handleResult, params); // ($to_str, $text, $ticket_id) document.to_listtype.func.value=choice; } // end function do_listtype() function do_listtype(choice) { // 11/29/10 - added Scheduled tickets to menu. 12/02/10 Added persistance for the list view var params = "f_n=list_type&v_n=" + choice + "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // flag 1, value h var url = "persist.php"; sendRequest (url, l_handleResult, params); // ($to_str, $text, $ticket_id) document.to_listtype.func.value=choice; show_btns_closed() } // end function do_listtype() function l_handleResult(req) { // the 'called-back' persist function - nill content for the tickets list type persistance } function cs_handleResult(req) { // the 'called-back' function for show current or scheduled document.to_listtype.submit(); } var side_bar_html_hdr = "<TABLE border=0 CLASS='sidebar' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.38)); ?> >\n";<?php if ($any_open_tickets) { // 1/18/11 ?> side_bar_html_hdr += "<TR class='even' STYLE = 'height:20px; width: 100%;' VALIGN='baseline'><TD colspan=99 align='center'<I>Click/Mouse-over for information</I> "; <?php } // end if ($any_open_tickets) $query_sched = "SELECT * FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE `status`='{$GLOBALS['STATUS_SCHEDULED']}'"; // 11/29/10 $result_sched = mysql_query($query_sched) or do_error($query_sched, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); // 11/29/10 $num_sched = mysql_num_rows($result_sched); // 11/29/10 if ($num_sched != 0 && $func != 10) { // 11/29/10 $scheduled_link = $num_sched >= 2 ? " » <U>Scheduled: ({$num_sched}) </U> " : " Scheduled: ({$num_sched})"; $order_by = !empty($get_sortby) ? $get_sortby : $_SESSION['sortorder']; // use default sort order? ?> side_bar_html_hdr +="\t\t<SPAN class='scheduled' onClick='do_sched_jobs(10);'><?php print $scheduled_link; ?> </SPAN>\n"; <?php } // 11/29/10 if ($num_sched != 0 && $func == 10) { // 11/29/10 ?> side_bar_html_hdr +="\t\t<SPAN class='scheduled' onClick='do_curr_jobs(0);'>» View current situation</SPAN>\n"; <?php } // 11/29/10 ?> side_bar_html_hdr += get_chg_disp_tr(); // adds the "Chg display' row at top of tickets list - 5/6/11 side_bar_html_hdr +="<br /><br /></TD></TR>\n"; side_bar_html_hdr += "<TR class='odd'><TD align='left' width='5%'><B>ID</B></TD><TD align='left' width='15%'><B><?php print $incident; ?> </B></TD><TD align='left' width='15%'><B>Address</B></TD><TD align='left' width='15%'><B><?php print $nature; ?> </B></TD><TD align='left' width='15%'><B>Comments</B></TD><TD align='left' width='15%'><B>Description</B></TD><TD align='left' width='2%'><B>P</B></TD><TD align='left' width='2%'><B>A</B></TD><TD align='left' width='2%'><B>U</B></TD><TD align='center' width='14%'><B>As of</B></TD></TR>"; side_bar_html_hdr += "</TABLE>"; var rowIds = []; // 3/8/10 var which; var i = 0; // sidebar/icon index var side_bar_html = "<TABLE border=0 CLASS='sidebar' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.38)); ?> >\n"; <?php $order_by = !empty($get_sortby) ? $get_sortby : $_SESSION['sortorder']; // use default sort order? //fix limits according to setting "ticket_per_page" $limit = ""; if ($_SESSION['ticket_per_page'] && check_for_rows("SELECT id FROM `{$GLOBALS['mysql_prefix']}ticket`") > $_SESSION['ticket_per_page']) { if ($_GET['offset']) { $limit = "LIMIT {$_GET['offset']},{$_SESSION['ticket_per_page']}"; } else { $limit = "LIMIT 0,{$_SESSION['ticket_per_page']}"; } } $restrict_ticket = ""; // $restrict_ticket = (get_variable('restrict_user_tickets') && !(is_administrator()))? " AND owner=$_SESSION[user_id]" : ""; $time_back = mysql_format_date(time() - get_variable('delta_mins') * 60 - $cwi * 3600); if (isset($_SESSION['viewed_groups'])) { // 5/4/11 $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { // 5/4/11 $x = 0; $where2 = "AND ("; foreach ($al_groups as $grp) { $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`{$GLOBALS['mysql_prefix']}allocates`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; $where2 = "AND ("; foreach ($curr_viewed as $grp) { $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`{$GLOBALS['mysql_prefix']}allocates`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } switch ($func) { case 0: $where = "WHERE (`{$GLOBALS['mysql_prefix']}ticket`.`status`='{$GLOBALS['STATUS_OPEN']}' OR (`{$GLOBALS['mysql_prefix']}ticket`.`status`='{$GLOBALS['STATUS_SCHEDULED']}' AND `{$GLOBALS['mysql_prefix']}ticket`.`booked_date` <= (NOW() + INTERVAL 2 DAY)) OR \n\t\t\t\t(`{$GLOBALS['mysql_prefix']}ticket`.`status`='{$GLOBALS['STATUS_CLOSED']}' AND `{$GLOBALS['mysql_prefix']}ticket`.`problemend` >= '{$time_back}')){$where2}"; // 11/29/10, 4/18/11, 4/18/11 break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: $the_start = get_start($func); // mysql timestamp format $the_end = get_end($func); $where = " WHERE (`{$GLOBALS['mysql_prefix']}ticket`.`status`='{$GLOBALS['STATUS_CLOSED']}' AND `{$GLOBALS['mysql_prefix']}ticket`.`problemend` BETWEEN '{$the_start}' AND '{$the_end}') {$where2} "; // 4/18/11, 4/18/11 break; case 10: $where = "WHERE (`{$GLOBALS['mysql_prefix']}ticket`.`status`='{$GLOBALS['STATUS_SCHEDULED']}' AND `{$GLOBALS['mysql_prefix']}ticket`.`booked_date` >= (NOW() + INTERVAL 2 DAY)) {$where2}"; // 11/29/10, 4/18/11, 4/18/11 break; default: print "error - error - error - error " . __LINE__; } // end switch($func) if ($sort_by_field && $sort_value) { //sort by field?, updated 4/18/11 to support regional operation $query = "SELECT *,UNIX_TIMESTAMP(problemstart) AS problemstart,UNIX_TIMESTAMP(problemend) AS problemend,\n\t\t\tUNIX_TIMESTAMP(date) AS date,UNIX_TIMESTAMP(updated) AS updated, \n\t\t\tin_types.type AS `type`, in_types.id AS `t_id` \n\t\t\tFROM `{$GLOBALS['mysql_prefix']}allocates`\n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` ON `{$GLOBALS['mysql_prefix']}allocates`.`resource_id`=`{$GLOBALS['mysql_prefix']}ticket`.`id` \t\t\t\n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}in_types` ON `{$GLOBALS['mysql_prefix']}ticket`.`in_types_id`=`{$GLOBALS['mysql_prefix']}in_types`.`in_types.id` \n\t\t\tWHERE {$sort_by_field}='{$sort_value}' {$restrict_ticket} AND `{$GLOBALS['mysql_prefix']}allocates`.`type` = 1 ORDER BY {$order_by}"; } else { // 2/2/09, 8/12/09, 1/30/11, 6/10/11 $query = "SELECT *,UNIX_TIMESTAMP(problemstart) AS problemstart,\n\t\t\tUNIX_TIMESTAMP(problemend) AS problemend,\n\t\t\tUNIX_TIMESTAMP(booked_date) AS booked_date,\t\n\t\t\tUNIX_TIMESTAMP(date) AS date, \n\t\t\t(`{$GLOBALS['mysql_prefix']}ticket`.`street`) AS ticket_street, \n\t\t\t(`{$GLOBALS['mysql_prefix']}ticket`.`state`) AS ticket_city, \n\t\t\t(`{$GLOBALS['mysql_prefix']}ticket`.`city`) AS ticket_state,\n\t\t\tUNIX_TIMESTAMP(`{$GLOBALS['mysql_prefix']}ticket`.updated) AS updated,\n\t\t\t`{$GLOBALS['mysql_prefix']}ticket`.`id` AS `tick_id`,\n\t\t\t`{$GLOBALS['mysql_prefix']}in_types`.type AS `type`, \n\t\t\t`{$GLOBALS['mysql_prefix']}in_types`.`id` AS `t_id`,\n\t\t\t`{$GLOBALS['mysql_prefix']}ticket`.`description` AS `tick_descr`, \n\t\t\t`{$GLOBALS['mysql_prefix']}ticket`.lat AS `lat`,\n\t\t\t`{$GLOBALS['mysql_prefix']}ticket`.lng AS `lng`, \n\t\t\t`{$GLOBALS['mysql_prefix']}facilities`.lat AS `fac_lat`,\n\t\t\t`{$GLOBALS['mysql_prefix']}facilities`.lng AS `fac_lng`, \n\t\t\t`{$GLOBALS['mysql_prefix']}facilities`.`name` AS `fac_name`, \n\t\t\t(SELECT COUNT(*) as numfound FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\t\t\tWHERE `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id` = `{$GLOBALS['mysql_prefix']}ticket`.`id` \n\t\t\t\tAND `clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' ) \n\t\t\t\tAS `units_assigned`\t\t\t\n\t\t\tFROM `{$GLOBALS['mysql_prefix']}ticket`\t\t\t\n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` \n\t\t\t\tON `{$GLOBALS['mysql_prefix']}ticket`.id=`{$GLOBALS['mysql_prefix']}allocates`.`resource_id`\t\t\t\n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}in_types` \n\t\t\t\tON `{$GLOBALS['mysql_prefix']}ticket`.in_types_id=`{$GLOBALS['mysql_prefix']}in_types`.`id` \n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}facilities` \n\t\t\t\tON `{$GLOBALS['mysql_prefix']}ticket`.rec_facility=`{$GLOBALS['mysql_prefix']}facilities`.`id` \n\t\t\t{$where} {$restrict_ticket} \n\t\t\t GROUP BY tick_id ORDER BY `status` DESC, `booked_date` ASC, `severity` DESC,`{$GLOBALS['mysql_prefix']}ticket`.`id` ASC\n\t\t\tLIMIT 1000 OFFSET {$my_offset}"; // 2/2/09, 10/28/09, 2/21/10 // print $query; } $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $the_offset = isset($_GET['frm_offset']) ? (int) $_GET['frm_offset'] : 0; $sb_indx = 0; // note zero base! $acts_ary = $pats_ary = array(); // 6/2/10 $query = "SELECT `ticket_id`, COUNT(*) AS `the_count` FROM `{$GLOBALS['mysql_prefix']}action` GROUP BY `ticket_id`"; $result_temp = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row = stripslashes_deep(mysql_fetch_assoc($result_temp))) { $acts_ary[$row['ticket_id']] = $row['the_count']; } $query = "SELECT `ticket_id`, COUNT(*) AS `the_count` FROM `{$GLOBALS['mysql_prefix']}patient` GROUP BY `ticket_id`"; $result_temp = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row = stripslashes_deep(mysql_fetch_assoc($result_temp))) { $pats_ary[$row['ticket_id']] = $row['the_count']; } $line_limit = 25; // 5/5/11 $col_width = (int) floor($_SESSION['scr_width'] * 0.013); $use_quick = (int) $func == 0 || (int) $func == 10 ? FALSE : TRUE; // 11/29/10 if ($use_quick) { $js_func = "open_tick_window"; } elseif ($quick && !is_guest()) { $js_func = "myclick_ed_tick"; } else { $js_func = "myclick_ed_tick"; } // =========================== begin major while() for tickets========== $temp = (string) round(microtime(true) - $time, 3); // snap (__LINE__, $temp ); ?> var incs_array = []; var incs_groups = []; var i = 0; <?php while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 7/7/10 $tick_gps = get_allocates(1, $row['tick_id']); // 5/4/11 $grp_names = "Groups Assigned: "; // 5/4/11 $y = 0; // 5/4/11 foreach ($tick_gps as $value) { // 5/4/11 $counter = count($tick_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $onclick_str = "onClick = '{$js_func}({$row['tick_id']});'"; // onClick = to_wherever(999); -6/23/11 $by_severity[$row['severity']]++; // 5/2/10 if ($func > 0) { // closed? - 5/16/10 $onclick = " open_tick_window({$row['tick_id']})"; } else { $onclick = $quick ? " myclick_ed_tick({$row['tick_id']}) " : "myclick({$sb_indx})"; // 1/2/10 } if ($do_blink && $row['units_assigned'] == 0 && $row['status'] == $GLOBALS['STATUS_OPEN']) { // 4/11/10 $blinkst = "<blink>"; $blinkend = "</blink>"; } else { $blinkst = $blinkend = ""; } $tip = str_replace("'", "`", $grp_names . " / " . $row['contact'] . "/" . $row['ticket_street'] . "/" . $row['ticket_city'] . "/" . $row['ticket_state'] . "/" . $row['phone'] . "/" . $row['scope']); // tooltip string - 1/3/10, 4/18/11 $sp = $row['status'] == $GLOBALS['STATUS_SCHEDULED'] && $func != 10 ? "*" : ""; print "\t\tvar scheduled = '{$sp}';\n"; ?> var sym = (<?php print addslashes($sb_indx); ?> +1).toString(); // for sidebar var sym2= scheduled + (<?php print $sb_indx; ?> +1).toString(); // for icon <?php $the_id = $row['tick_id']; // 11/27/09 if ($row['tick_descr'] == '') { $row['tick_descr'] = '[no description]'; } // 8/12/09 if ($row['comments'] == '') { $row['comments'] = '[no comments]'; } // 8/12/09 if (get_variable('abbreviate_description')) { //do abbreviations on description, affected if neccesary if (strlen($row['tick_descr']) > get_variable('abbreviate_description')) { $row['tick_descr'] = substr($row['tick_descr'], 0, get_variable('abbreviate_description')) . '...'; } } if (get_variable('abbreviate_affected')) { if (strlen($row['affected']) > get_variable('abbreviate_affected')) { $row['affected'] = substr($row['affected'], 0, get_variable('abbreviate_affected')) . '...'; } } switch ($row['severity']) { //color tickets by severity case $GLOBALS['SEVERITY_MEDIUM']: $severityclass = 'severity_medium'; break; case $GLOBALS['SEVERITY_HIGH']: $severityclass = 'severity_high'; break; default: $severityclass = 'severity_normal'; break; } $A = array_key_exists($the_id, $acts_ary) ? $acts_ary[$the_id] : 0; // 6/2/10 $P = array_key_exists($the_id, $pats_ary) ? $pats_ary[$the_id] : 0; if ($row['status'] == $GLOBALS['STATUS_CLOSED']) { $strike = "<strike>"; $strikend = "</strike>"; } else { $strike = $strikend = ""; } $address_street = $row['ticket_street'] . " " . $row['ticket_city']; $address_street = $address_street == " " ? "[No Address]" : $address_street; $sidebar_line = "<TD ALIGN='left' WIDTH='15%' CLASS='{$severityclass}' {$onclick_str}><NOBR>{$strike}" . $sp . shorten($row['scope'], $col_width) . " {$strikend}</NOBR></TD>"; //10/27/09 $sidebar_line .= "<TD ALIGN='left' WIDTH='15%' CLASS='{$severityclass}' {$onclick_str}><NOBR>{$strike}" . shorten($address_street, $col_width) . " {$strikend}</NOBR> </TD>"; // 8/2/10 $sidebar_line .= "<TD ALIGN='left' WIDTH='15%' CLASS='{$severityclass}' {$onclick_str}><NOBR>{$strike}" . shorten($row['type'], $col_width) . " {$strikend}</NOBR></TD>"; $sidebar_line .= "<TD ALIGN='left' WIDTH='15%' CLASS='{$severityclass}' {$onclick_str}><NOBR>{$strike}" . shorten(remove_nls($row['comments']), $col_width) . " {$strikend}</NOBR></TD>"; $sidebar_line .= "<TD ALIGN='left' WIDTH='15%' CLASS='{$severityclass}' {$onclick_str}><NOBR>{$strike}" . shorten(remove_nls($row['tick_descr']), $col_width) . " {$strikend}</NOBR></TD>"; if ($P == 0) { $sidebar_line .= "<TD ALIGN='left' WIDTH='2%'> </TD>"; } else { $pat_onclick_str = "onClick = 'do_patient({$row['tick_id']});'"; $sidebar_line .= "<TD ALIGN='left' WIDTH='2%' CLASS='disp_stat' {$pat_onclick_str}><NOBR> <B>{$P}</B> </TD>"; } $sidebar_line .= "<TD ALIGN='left' WIDTH='2%' {$onclick_str}>{$A}</TD>"; $sidebar_line .= "<TD ALIGN='left' WIDTH='2%' {$onclick_str}>{$blinkst}{$row['units_assigned']}{$blinkend}</TD>"; $_date = $row['status'] == $GLOBALS['STATUS_SCHEDULED'] ? $row['booked_date'] : $row['updated']; // 1/30/11 $sidebar_line .= "<TD ALIGN='left' WIDTH='14%' {$onclick_str}><NOBR> " . format_sb_date($_date) . "</NOBR></TD>"; $street = empty($row['ticket_street']) ? "" : $row['ticket_street'] . "<BR/>" . $row['ticket_city'] . " " . $row['ticket_state']; $todisp = is_guest() ? "" : " <A HREF='routes.php?ticket_id={$the_id}'><U>Dispatch</U></A>"; // 8/2/08 $rand = $istest ? "&rand=" . chr(rand(65, 90)) : ""; // 10/21/08 ?> var the_class = "emph"; <?php if ($quick || (int) $func > 0) { // 5/18/10 print "\t\t\tdo_sidebar_t_ed (\"{$sidebar_line}\", ({$the_offset} + {$sb_indx}), {$row['tick_id']}, sym, \"{$tip}\");\n"; } else { print "\t\t\tdo_sidebar_t_ed (\"{$sidebar_line}\", ({$the_offset} + {$sb_indx}), {$row['tick_id']}, sym, \"{$tip}\");\n"; } $sb_indx++; } // end tickets while ($row = ...) // if ($any_closed_tickets) { // 1/28/11 // } // end if ($any_closed_tickets) if ($sb_indx == 0) { $txt_str = $func > 0 ? "closed tickets this period!" : "current tickets!"; print "\n\t\tside_bar_html += \"<TR CLASS='even'><TD COLSPAN='99' ALIGN='center'><I><B>No {$txt_str}</B></I></TD></TR>\";"; print "\n\t\tside_bar_html += \"<TR CLASS='odd'><TD COLSPAN='99' ><BR /><BR /></TD></TR>\";"; } $limit = 1000; $link_str = ""; $query = "SELECT `id` FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE `status` = '{$GLOBALS['STATUS_CLOSED']}'"; $result_cl = mysql_query($query) or do_error($query, 'mysql_query', mysql_error(), basename(__FILE__), __LINE__); if (mysql_affected_rows() > $limit) { $sep = ", "; $rcds = mysql_affected_rows(); for ($j = 0; $j < ceil($rcds / $limit); $j++) { $sep = $j == ceil($rcds / $limit) - 1 ? "" : ", "; $temp = (string) ($j * $limit); $link_str .= "<SPAN onClick = 'document.to_closed.frm_offset.value={$temp}; document.to_closed.submit();'><U>" . ($j + 1) . "K</U></SPAN>{$sep}"; } } // $sev_string = "Severities: normal ({$by_severity[$GLOBALS['SEVERITY_NORMAL']]}), Medium ({$by_severity[$GLOBALS['SEVERITY_MEDIUM']]}), High ({$by_severity[$GLOBALS['SEVERITY_HIGH']]})"; $sev_string = "Severities: <SPAN CLASS='severity_normal'>Normal ({$by_severity[$GLOBALS['SEVERITY_NORMAL']]})</SPAN>, <SPAN CLASS='severity_medium'>Medium ({$by_severity[$GLOBALS['SEVERITY_MEDIUM']]})</SPAN>, <SPAN CLASS='severity_high'>High ({$by_severity[$GLOBALS['SEVERITY_HIGH']]})</SPAN>"; unset($acts_ary, $pats_ary, $result_temp, $result_cl); ?> side_bar_html +="</TABLE>\n"; $("side_bar_header").innerHTML = side_bar_html_hdr; // side_bar_html to incidents div $("side_bar").innerHTML = side_bar_html; // side_bar_html to incidents div $('sev_counts').innerHTML = "<?php print $sev_string; ?> "; // 5/2/10 // ========================================== RESPONDER start ================================================ side_bar_html ="<TABLE border=0 CLASS='sidebar' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.38)); ?> >\n"; // initialize units sidebar string side_bar_html += "<TR CLASS = 'spacer'><TD CLASS='spacer' COLSPAN=99> </TD></TR>"; // 3/15/11 points = false; i++; var j=0; <?php $u_types = array(); // 1/1/09 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}unit_types` ORDER BY `id`"; // types in use $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { $u_types[$row['id']] = array($row['name'], $row['icon']); // name, index, aprs - 1/5/09, 1/21/09 } unset($result); $assigns = array(); // 8/3/08 $tickets = array(); // ticket id's $query = "SELECT `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`, \n\t\t`{$GLOBALS['mysql_prefix']}assigns`.`responder_id`, \n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`scope` AS `ticket` \n\t\tFROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` ON `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`=`{$GLOBALS['mysql_prefix']}ticket`.`id`"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_as = stripslashes_deep(mysql_fetch_array($result_as))) { $assigns[$row_as['responder_id']] = $row_as['ticket']; $tickets[$row_as['responder_id']] = $row_as['ticket_id']; } unset($result_as); $eols = array("\r\n", "\n", "\r"); // all flavors of eol $status_vals = array(); // build array of $status_vals $status_vals[''] = $status_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}un_status` ORDER BY `id`"; $result_st = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_st = stripslashes_deep(mysql_fetch_array($result_st))) { $temp = $row_st['id']; $status_vals[$temp] = $row_st['status_val']; $status_hide[$temp] = $row_st['hide']; } unset($result_st); $assigns_ary = array(); // construct array of responder_id's on active calls $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` WHERE ((`clear` IS NULL) OR (DATE_FORMAT(`clear`,'%y') = '00')) "; $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { $assigns_ary[$row['responder_id']] = TRUE; } $order_values = array(1 => "`nr_assigned` DESC, `handle` ASC, `r`.`name` ASC", 2 => "`type_descr` ASC, `handle` ASC", 3 => "`stat_descr` ASC, `handle` ASC", 4 => "`handle` ASC"); // 6/24/10 if (!empty($_POST)) { $_SESSION['unit_flag_2'] = $_POST['order']; } elseif (empty($_SESSION['unit_flag_2'])) { $_SESSION['unit_flag_2'] = 1; } $order_str = $order_values[$_SESSION['unit_flag_2']]; // 6/11/10 // 6/25/10 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}';"; // 4/18/11 $result = mysql_query($query); // 4/18/11 $al_groups = array(); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 4/18/11 $al_groups[] = $row['group']; } if (isset($_SESSION['viewed_groups'])) { $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { $x = 0; // 4/18/11 $where2 = "WHERE ("; // 4/18/11 foreach ($al_groups as $grp) { // 4/18/11 $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; // 4/18/11 $where2 = "WHERE ("; // 4/18/11 foreach ($curr_viewed as $grp) { // 4/18/11 $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } $where2 .= "AND `a`.`type` = 2"; $query = "SELECT *, UNIX_TIMESTAMP(updated) AS `updated`, `t`.`id` AS `type_id`, `r`.`id` AS `unit_id`, `r`.`name` AS `name`,\n\t\t`s`.`description` AS `stat_descr`, `r`.`description` AS `unit_descr`, `t`.`description` AS `type_descr`,\n\t\t(SELECT COUNT(*) as numfound FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\tWHERE `{$GLOBALS['mysql_prefix']}assigns`.`responder_id` = unit_id \tAND ( `clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )) AS `nr_assigned` \n\t\tFROM `{$GLOBALS['mysql_prefix']}responder` `r` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `r`.`id` = a.resource_id )\t\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}unit_types` `t` ON ( `r`.`type` = t.id )\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}un_status` `s` ON ( `r`.`un_status_id` = s.id ) \t\t\n\t\t{$where2} GROUP BY unit_id ORDER BY {$order_str}"; // 2/1/10, 3/8/10, 6/11/10 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $units_ct = mysql_affected_rows(); // 1/4/10 if ($units_ct == 0) { print "\n\t\tside_bar_html += \"<TR CLASS='odd'><TH></TH><TH ALIGN='center' COLSPAN=99><I><B>No units!</I></B></TH></TR>\"\n"; } else { $checked = array("", "", "", ""); $checked[$_SESSION['unit_flag_2']] = " CHECKED"; ?> side_bar_html += "<TR CLASS = 'even' VALIGN='baseline'><TD COLSPAN=99 ALIGN='center' STYLE = 'height:20px;'>"; side_bar_html += "<I>Sort: "; side_bar_html += "Unit » <input type = radio name = 'frm_order' value = 1 <?php print $checked[1]; ?> onClick = 'do_sort_sub(this.value);' /> "; side_bar_html += "Type » <input type = radio name = 'frm_order' value = 2 <?php print $checked[2]; ?> onClick = 'do_sort_sub(this.value);' /> "; side_bar_html += "Status » <input type = radio name = 'frm_order' value = 3 <?php print $checked[3]; ?> onClick = 'do_sort_sub(this.value);' />"; side_bar_html += "</I></TD></TR>"; <?php print "\n\t\tside_bar_html += \"<TR CLASS='odd'><TD></TD><TD> <B>Unit</B> ({$units_ct}) </TD>\t<TD onClick = 'do_mail_win(null, null); ' ALIGN = 'center'><IMG SRC='mail_red.png' /></TD><TD> <B>Status</B></TD><TD COLSPAN=2><B>" . $incident . "</B></TD><TD><B> As of</B></TD></TR>\"\n"; } $aprs = $instam = $locatea = $gtrack = $glat = $t_tracker = $ogts = FALSE; //7/23/09, 5/11/11 $utc = gmdate("U"); // 3/25/09 // =========================== begin major while() for RESPONDER ========== $chgd_unit = $_SESSION['unit_flag_1']; // possibly 0 - 4/8/10 $_SESSION['unit_flag_1'] = 0; // one-time only - 4/11/10 while ($row = stripslashes_deep(mysql_fetch_array($result))) { $resp_gps = get_allocates(2, $row['unit_id']); // 5/4/11 $grp_names = "Groups Assigned: "; // 5/4/11 $y = 0; // 5/4/11 foreach ($resp_gps as $value) { // 5/4/11 $counter = count($resp_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $latitude = $row['lat']; // 7/18/10 $longitude = $row['lng']; // 7/18/10 $on_click = !my_is_float($row['lat']) || $quick ? " myclick_nm({$row['unit_id']}) " : "myclick({$sb_indx})"; // 1/2/10 $got_point = FALSE; $name = $row['handle']; // 10/8/09 $index = addslashes($row['icon_str']); // 3/19/11 print "\t\tvar sym = '{$index}';\n"; // for sidebar and icon 10/8/09 // 2/13/09 $todisp = is_guest() ? "" : " <A HREF='units_nm.php?func=responder&view=true&disp=true&id=" . $row['unit_id'] . "'><U>Dispatch</U></A> "; // 08/8/02 $toedit = is_guest() || is_user() ? "" : " <A HREF='units_nm.php?func=responder&edit=true&id=" . $row['unit_id'] . "'><U>Edit</U></A> "; // 5/11/10 $hide_unit = $row['hide'] == "y" ? "1" : "0"; // 3/8/10 $update_error = strtotime('now - 6 hours'); // set the time for silent setting // NAME $the_bg_color = $GLOBALS['UNIT_TYPES_BG'][$row['icon']]; // 2/1/10 $the_text_color = $GLOBALS['UNIT_TYPES_TEXT'][$row['icon']]; $arrow = $chgd_unit == $row['unit_id'] ? "<IMG SRC='rtarrow.gif' />" : ""; // 4/8/10 $on_click = " onclick_do_unit({$row['unit_id']}) "; // 1/2/10 $sidebar_line = "<TD onClick = '{$on_click}'>{$arrow}<SPAN STYLE='background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};'> {$row['handle']}</B></U></SPAN></TD>"; // MAIL if (!is_guest() && is_email($row['contact_via'])) { // 2/1/10 $mail_link = "\t<TD CLASS='mylink' ALIGN='center'>" . " <IMG SRC='mail.png' BORDER=0 TITLE = 'click to email unit {$name}'" . " onclick = 'do_mail_win(\\\"{$name},{$row['contact_via']}\\\");'> " . " </TD>"; // 4/26/09 } else { $mail_link = "\t<TD ALIGN='center'>na</TD>"; } $sidebar_line .= $mail_link; // STATUS $sidebar_line .= "<TD>" . get_status_sel($row['unit_id'], $row['un_status_id'], "u") . "</TD>"; // status // DISPATCHES 3/16/09 if (!array_key_exists($row['unit_id'], $assigns_ary)) { // this unit assigned? - 6/4/10 $row_assign = FALSE; } else { // 6/25/10 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` t ON ({$GLOBALS['mysql_prefix']}assigns.ticket_id = t.id)\n\t\t\t\tWHERE `responder_id` = '{$row['unit_id']}' AND ( `clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $row_assign = mysql_affected_rows() == 0 ? FALSE : stripslashes_deep(mysql_fetch_assoc($result_as)); unset($result_as); } $tip = !$row_assign ? "" : str_replace("'", "`", "{$row_assign['contact']}/{$row_assign['street']}/{$row_assign['city']}/{$row_assign['phone']}/{$row_assign['scope']} "); switch ($row_assign['severity']) { //color tickets by severity case $GLOBALS['SEVERITY_MEDIUM']: $severityclass = 'severity_medium'; break; case $GLOBALS['SEVERITY_HIGH']: $severityclass = 'severity_high'; break; default: $severityclass = 'severity_normal'; break; } // $tick_ct = (mysql_affected_rows()>1)? " (" . mysql_affected_rows() . ")": ""; // active dispatches switch (mysql_affected_rows()) { // 8/30/10 case 0: $the_disp_stat = ""; break; case 1: $the_disp_stat = get_disp_status($row_assign) . " "; break; default: // multiples $the_disp_stat = "<SPAN CLASS='disp_stat'> " . mysql_affected_rows() . " </SPAN> "; break; } // end switch() $ass_td = mysql_affected_rows() > 0 ? "<TD ALIGN='left' onMouseover=\\\"Tip('{$tip}')\\\" onmouseout=\\\"UnTip()\\\" onClick = '{$on_click}' COLSPAN=2 CLASS='{$severityclass}' >{$the_disp_stat}" . shorten($row_assign['scope'], 20) . "</TD>" : "<TD onClick = '{$on_click}' > na </TD>"; $sidebar_line .= $row_assign ? $ass_td : "<TD COLSPAN=2>na</TD>"; // AS OF $strike = $strike_end = ""; // any remote source? $the_time = $row['updated']; // $the_class = "td_data"; $the_class = ""; if (abs($utc - $the_time) > $GLOBALS['TOLERANCE']) { // attempt to identify non-current values $strike = "<STRIKE>"; $strike_end = "</STRIKE>"; } else { $strike = $strike_end = ""; } $sidebar_line .= "<TD onClick = '{$on_click}' CLASS='{$the_class}'> {$strike}" . format_sb_date($the_time) . "{$strike_end} </TD>"; // 6/17/08 $resp_cat = get_category($row['unit_id']); print "\t\tdo_sidebar_u_ed (\"{$sidebar_line}\", {$sb_indx}, '{$on_click}', sym, \"{$tip}\", \"{$resp_cat}\");\n"; // (sidebar, line_no, on_click, letter) if ($row['hide'] == "y") { // 3/8/10 ?> var rowId = tr_id_fixed_part + <?php print $sb_indx; ?> ; // row index for row hide/show - 3/2/10 rowIds.push(rowId); // form is "tr_id_??" where ?? is the row no. <?php } // end if ($row['hide']=="y") $sb_indx++; // zero-based } // end ========== while() for RESPONDER ========== $source_legend = $aprs || $instam || $gtrack || $locatea || $glat || $t_tracker || $ogts ? "<TD CLASS='emph' ALIGN='left'>Source time</TD>" : "<TD> </TD>"; // if any remote data/time 3/24/09 print "\n\tside_bar_html+= \"<TR CLASS='\" + colors[i%2] +\"'><TD COLSPAN=99 ALIGN='center'>{$source_legend}</TD></TR>\";\n"; ?> var legends = "<TR class='even'><TD ALIGN='center' COLSPAN='99'><TABLE ALIGN='center' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> >"; // 3/15/11 legends += "<TR CLASS='spacer'><TD CLASS='spacer' COLSPAN='99' ALIGN='center'> </TD></TR><TR class='even'><TD ALIGN='center' COLSPAN='99'><B>Responders Legend</B></TD></TR>"; // 3/15/11 legends += "<TR CLASS='even'><TD COLSPAN='99' ALIGN='center'> <B>M</B>obility: stopped: <FONT COLOR='red'>•</FONT> moving: <FONT COLOR='green'>•</FONT> fast: <FONT COLOR='white'>•</FONT> silent: <FONT COLOR='black'>•</FONT> </TD></TR>"; // 3/15/11 legends += "<TR CLASS='" + colors[(i)%2] +"'><TD COLSPAN='99' ALIGN='center'><?php print get_units_legend(); ?> </TD></TR></TABLE>"; // 3/15/11 $("side_bar_r").innerHTML = side_bar_html; // side_bar_html to responders div $("side_bar_rl").innerHTML = legends + "</TABLE>"; // 12/03/10 side_bar_html= ""; // 12/03/10 side_bar_html+="<TABLE><TR class='heading_2'><TH width = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> ALIGN='center' COLSPAN='99'>Units</TH></TR><TR class='even'><TD COLSPAN=99 CLASS='td_label' ><form action='#'>"; // 12/03/10, 3/15/11 // ==================================== Add Facilities to Map 8/1/09 ================================================ // side_bar_html ="<TABLE border=0 CLASS='sidebar' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> >\n"; side_bar_html ="<TABLE border=0 CLASS='sidebar' >\n"; var icons=[]; var g=0; <?php $fac_order_values = array(1 => "`handle`,`fac_type_name` ASC", 2 => "`fac_type_name`,`handle` ASC", 3 => "`fac_status_val`,`fac_type_name` ASC"); // 3/15/11 if (array_key_exists('forder', $_POST)) { $_SESSION['fac_flag_2'] = $_POST['forder']; } elseif (empty($_SESSION['fac_flag_2'])) { $_SESSION['fac_flag_2'] = 2; } // 3/15/11 $fac_order_str = $fac_order_values[$_SESSION['fac_flag_2']]; // 3/15/11 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}';"; // 5/4/11 $result = mysql_query($query); // 5/4/11 $al_groups = array(); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 5/4/11 $al_groups[] = $row['group']; } if (isset($_SESSION['viewed_groups'])) { $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { $x = 0; // 5/4/11 $where2 = "WHERE ("; // 5/4/11 foreach ($al_groups as $grp) { // 5/4/11 $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`{$GLOBALS['mysql_prefix']}allocates`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; // 5/4/11 $where2 = "WHERE ("; // 5/4/11 foreach ($curr_viewed as $grp) { // 5/4/11 $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`{$GLOBALS['mysql_prefix']}allocates`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } $where2 .= "AND `{$GLOBALS['mysql_prefix']}allocates`.`type` = 3"; // 5/4/11 $query_fac = "SELECT *,UNIX_TIMESTAMP(updated) AS updated, \n\t\t`{$GLOBALS['mysql_prefix']}facilities`.id AS `fac_id`, \n\t\t`{$GLOBALS['mysql_prefix']}facilities`.description AS `facility_description`,\n\t\t`{$GLOBALS['mysql_prefix']}fac_types`.name AS `fac_type_name`, \n\t\t`{$GLOBALS['mysql_prefix']}facilities`.name AS `facility_name`,\n\t\t`{$GLOBALS['mysql_prefix']}fac_status`.status_val AS fac_status_val, \n\t\t`{$GLOBALS['mysql_prefix']}facilities`.status_id AS fac_status_id\n\t\tFROM `{$GLOBALS['mysql_prefix']}facilities` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` ON ( `{$GLOBALS['mysql_prefix']}facilities`.`id` = `{$GLOBALS['mysql_prefix']}allocates`.resource_id )\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}fac_types` ON `{$GLOBALS['mysql_prefix']}facilities`.type = `{$GLOBALS['mysql_prefix']}fac_types`.id \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}fac_status` ON `{$GLOBALS['mysql_prefix']}facilities`.status_id = `{$GLOBALS['mysql_prefix']}fac_status`.id \n\t\t{$where2} \n\t\tGROUP BY fac_id ORDER BY {$fac_order_str}"; $result_fac = mysql_query($query_fac) or do_error($query_fac, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $mail_str = may_email() ? "do_fac_mail_win();" : ""; // 7/2/10 $temp = max(320, intval($_SESSION['scr_width'] * 0.4)); $facs_ct = mysql_affected_rows(); // 1/4/10 if ($facs_ct == 0) { print "\n\t\tside_bar_html += \"<TR CLASS='odd'><TH COLSPAN=99 ALIGN='center'><I><B>No Facilities!</I></B></TH></TR>\"\n"; // 3/15/11 } else { $fs_checked = array("", "", "", ""); $fs_checked[$_SESSION['fac_flag_2']] = " CHECKED"; ?> side_bar_html += "<TR CLASS = 'even'><TD COLSPAN=99 ALIGN='center'>"; // 3/15/11 side_bar_html += "<I><B>Sort</B>: "; side_bar_html += "Name» <input type = radio name = 'frm_order' value = 1 <?php print $fs_checked[1]; ?> onClick = 'do_fac_sort_sub(this.value);' /> "; // 3/15/11, 5/3/11 side_bar_html += "Type » <input type = radio name = 'frm_order' value = 2 <?php print $fs_checked[2]; ?> onClick = 'do_fac_sort_sub(this.value);' /> "; // 3/15/11, 5/3/11 side_bar_html += "Status » <input type = radio name = 'frm_order' value = 3 <?php print $fs_checked[3]; ?> onClick = 'do_fac_sort_sub(this.value);' />"; // 3/15/11, 5/3/11 side_bar_html += "</I></TD></TR>"; // 3/15/11 <?php print "\n\t\tside_bar_html += \"<TR CLASS='odd'><TD> </TD><TD ALIGN='left'><B>Facility</B> ({$facs_ct}) </TD><TD ALIGN='left'><IMG SRC='mail_red.png' BORDER=0 onClick = '{$mail_str}'/></TD><TD> <B>Status</B></TD><TD ALIGN='left'><B>Type</B></TD><TD ALIGN='left'><B> As of</B></TD></TR>\"\n"; // 7/2/10, 3/15/11 } // =========================== begin major while() for FACILITIES ========== $quick = !is_guest() && intval(get_variable('quick') == 1); // 11/27/09 $sb_indx = 0; // for fac's only 8/5/10 while ($row_fac = mysql_fetch_assoc($result_fac)) { // 7/7/10 $fac_gps = get_allocates(3, $row_fac['fac_id']); // 5/4/11 $grp_names = "Groups Assigned: "; // 5/4/11 $y = 0; // 5/4/11 foreach ($fac_gps as $value) { // 5/4/11 $counter = count($fac_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $grp_names .= " / "; $fac_id = $row_fac['fac_id']; $fac_type = $row_fac['icon']; $fac_type_name = $row_fac['fac_type_name']; $fac_region = get_first_group(3, $fac_id); $fac_name = addslashes($row_fac['facility_name']); // 10/8/09 $fac_handle = addslashes($row_fac['handle']); // 10/8/09 $fac_index = addslashes($row_fac['icon_str']); $on_click = $can_edit ? "fac_click_ed({$fac_id})" : "fac_click_vw({$fac_id})"; // 8/24/10 print "\t\tvar fac_sym = '" . addslashes($fac_index) . "';\n"; // for sidebar and icon 10/8/09 - 4/27/11 $facility_display_name = $f_disp_name = $row_fac['handle']; $the_bg_color = $GLOBALS['FACY_TYPES_BG'][$row_fac['icon']]; // 2/8/10 $the_text_color = $GLOBALS['FACY_TYPES_TEXT'][$row_fac['icon']]; // 2/8/10 $sidebar_fac_line = "<TD onClick = '{$on_click}' TITLE = '{$fac_name}' ALIGN='left'><SPAN STYLE='background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};' >{$fac_handle}</SPAN></TD>"; // MAIL if (may_email() && (is_email($row_fac['contact_email']) || is_email($row_fac['security_email']))) { // 7/2/10 $mail_link = "\t<TD CLASS='mylink' ALIGN='center'> " . "<IMG SRC='mail.png' BORDER=0 TITLE = 'click to email facility {$fac_handle}'" . " onclick = 'do_mail_win(\\\"{$fac_handle},{$row_fac['contact_email']}\\\");'> " . "</TD>"; // 4/26/09 } else { $mail_link = "\t<TD ALIGN='center'> <b>na</b></TD>"; } $sidebar_fac_line .= $mail_link; $sidebar_fac_line .= "<TD ALIGN='left' onClick = '{$on_click};' > " . addslashes(shorten($row_fac['fac_type_name'], $col_width)) . "</TD>"; $sidebar_fac_line .= "<TD ALIGN='left' onClick = '{$on_click};' > " . addslashes($row_fac['status_val']) . "</TD>"; $sidebar_fac_line .= "<TD onClick = '{$on_click};' > " . format_sb_date($row_fac['updated']) . "</TD>"; ?> var fac_icon = "td_label"; do_sidebar_fac_ed ("<?php print $sidebar_fac_line; ?> ", <?php print $row_fac['fac_id']; ?> , fac_sym, fac_icon, g); g++; <?php $sb_indx++; // zero-based - 6/30/10 } // end while ?> side_bar_html += "</TD></TR>\n"; <?php // =====================================End of functions to show facilities======================================================================== $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE `status` = 1 "; // 10/21/09 $result_ct = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_closed = mysql_num_rows($result_ct); unset($result_ct); $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}ticket` WHERE `status` = 3 "; // 10/21/09 $result_scheduled = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_scheduled = mysql_num_rows($result_scheduled); unset($result_scheduled); ?> side_bar_html +="<TR><TD COLSPAN='99'></TD></TR></TABLE>"; var fac_legends = ""; <?php if ($any_facilities) { ?> var fac_legends ="<TABLE border='0' VALIGN='top' ALIGN='center' CLASS='sidebar' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.4)); ?> >"; // 11/29/10, 3/15/11 fac_legends +="<TR CLASS='spacer'><TD CLASS='spacer' COLSPAN='99' ALIGN='center'> </TD></TR>"; // 11/29/10, 3/15/11 fac_legends +="<TR class='even'><TD ALIGN='center' COLSPAN=99><B>Facilities Legend</B></TD></TR>"; // legend row, 11/29/10, 3/15/11 fac_legends +="<TR class='even'><TD ALIGN='center' COLSPAN=99><?php print get_facilities_legend(); ?> </TD></TR></TABLE>\n"; // 3/15/11 <?php } ?> side_bar_html +="</TABLE></TD></TR></TABLE>\n"; $("side_bar_f").innerHTML = side_bar_html; //side_bar_html to facilities div $("facs_legend").innerHTML = fac_legends; //side_bar_html to facilities div side_bar_html = ""; </SCRIPT> <?php echo "Time Elapsed: " . round(microtime(true) - $time, 3) . "s"; }
function list_responders($addon = '', $start) { // global {$_SESSION['fip']}, $fmp, {$_SESSION['editfile']}, {$_SESSION['addfile']}, {$_SESSION['unitsfile']}, {$_SESSION['facilitiesfile']}, {$_SESSION['routesfile']}, {$_SESSION['facroutesfile']}; global $iw_width, $u_types, $tolerance; $assigns = array(); // 08/8/3 $tickets = array(); // ticket id's $query = "SELECT `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`, `{$GLOBALS['mysql_prefix']}assigns`.`responder_id`,\n\t\t`{$GLOBALS['mysql_prefix']}ticket`.`scope` AS `ticket` \n\t\tFROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` ON `{$GLOBALS['mysql_prefix']}assigns`.`ticket_id`=`{$GLOBALS['mysql_prefix']}ticket`.`id`\n\t\tWHERE ( `clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_as = stripslashes_deep(mysql_fetch_array($result_as))) { $assigns[$row_as['responder_id']] = $row_as['ticket']; $tickets[$row_as['responder_id']] = $row_as['ticket_id']; } unset($result_as); $calls = array(); // 6/17/08 $calls_nr = array(); ?> <SCRIPT > var color=0; var colors = new Array ('odd', 'even'); function hideDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = 'none'; $(hide_cont).style.display = 'none'; $(show_cont).style.display = ''; } var params = "f_n=" +controlarea+ "&v_n=h&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function showDiv(div_area, hide_cont, show_cont) { // 3/15/11 if (div_area == "buttons_sh") { var controlarea = "hide_controls"; } if (div_area == "resp_list_sh") { var controlarea = "resp_list"; } if (div_area == "facs_list_sh") { var controlarea = "facs_list"; } if (div_area == "incs_list_sh") { var controlarea = "incs_list"; } if (div_area == "region_boxes") { var controlarea = "region_boxes"; } var divarea = div_area var hide_cont = hide_cont var show_cont = show_cont if($(divarea)) { $(divarea).style.display = ''; $(hide_cont).style.display = ''; $(show_cont).style.display = 'none'; } var params = "f_n=" +controlarea+ "&v_n=s&sess_id=<?php print get_sess_key(__LINE__); ?> "; var url = "persist2.php"; sendRequest (url, gb_handleResult, params); } function checkArray(form, arrayName) { // 5/3/11 var retval = new Array(); for(var i=0; i < form.elements.length; i++) { var el = form.elements[i]; if(el.type == "checkbox" && el.name == arrayName && el.checked) { retval.push(el.value); } } return retval; } function checkForm(form) { // 6/10/11 var errmsg=""; var itemsChecked = checkArray(form, "frm_group[]"); if(itemsChecked.length > 0) { var params = "f_n=viewed_groups&v_n=" +itemsChecked+ "&sess_id=<?php print get_sess_key(__LINE__); ?> "; // 3/15/11 var url = "persist3.php"; // 3/15/11 sendRequest (url, fvg_handleResult, params); // form.submit(); } else { errmsg+= "\tYou cannot Hide all the regions\n"; if (errmsg!="") { alert ("Please correct the following and re-submit:\n\n" + errmsg); return false; } } } function fvg_handleResult(req) { // 6/10/11 The persist callback function for viewed groups. document.region_form.submit(); } function form_validate(theForm) { // 5/3/11 // alert("Validating"); checkForm(theForm); } // end function validate(theForm) function do_sidebar (sidebar, id, the_class, unit_id, index) { var unit_id = unit_id; side_bar_html += "<TR CLASS='" + colors[(id)%2] +"' >"; side_bar_html += "<TD CLASS='" + the_class + "' onClick = 'myclick(" + unit_id + ");'>" + index + "</TD>" + sidebar +"</TD></TR>\n"; // 1/5/09, 3/4/09, 10/29/09 removed period } function myclick(unit_id) { // Responds to sidebar click - view responder data document.view_form.id.value=unit_id; document.view_form.submit(); } function myclick_nm(v_id) { // Responds to sidebar click - view responder data document.view_form.id.value=v_id; document.view_form.submit(); } <?php $dzf = get_variable('def_zoom_fixed'); print "\tvar map_is_fixed = "; print my_is_int($dzf) && $dzf == 2 || my_is_int($dzf) && $dzf == 3 ? "true;\n" : "false;\n"; ?> var side_bar_html = "<TABLE border=0 CLASS='sidebar' WIDTH = <?php print max(320, intval($_SESSION['scr_width'] * 0.6)); ?> >"; side_bar_html += "<TR class='even'> <TD></TD><TD ALIGN='left'><B>Unit</B></TD><TD ALIGN='left'><B>Handle</B></TD><TD ALIGN='left'><B>Dispatch</B></TD><TD ALIGN='left'><B>Status</B></TD><TD ALIGN='left'><B>M</B></TD><TD ALIGN='left'><B>As of</B></TD></TR>"; var which; var i = <?php print $start; ?> ; // sidebar/icon index var points = false; // none <?php function can_do_dispatch($the_row) { if (intval($the_row['multi']) == 1) { return TRUE; } $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` WHERE `responder_id` = {$the_row['id']}"; // all dispatches this unit $result_temp = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_temp = stripslashes_deep(mysql_fetch_array($result_temp))) { // check any open runs this unit if (!is_date($row_temp['clear'])) { // if clear is empty, then NOT dispatch-able unset($result_temp, $row_temp); return FALSE; } } // end while ($row_temp ...) unset($result_temp, $row_temp); return TRUE; // none found, can dispatch } // end function can_do_dispatch() $eols = array("\r\n", "\n", "\r"); // all flavors of eol $bulls = array(0 => "", 1 => "red", 2 => "green", 3 => "white", 4 => "black"); $status_vals = array(); // build array of $status_vals $status_vals[''] = $status_vals['0'] = "TBD"; $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}un_status` ORDER BY `id`"; $result_st = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); while ($row_st = stripslashes_deep(mysql_fetch_array($result_st))) { $temp = $row_st['id']; $status_vals[$temp] = $row_st['status_val']; } unset($result_st); $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}allocates` WHERE `type`= 4 AND `resource_id` = '{$_SESSION['user_id']}';"; // 6/10/11 $result = mysql_query($query); // 4/13/11 $al_groups = array(); while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { // 6/10/11 $al_groups[] = $row['group']; } if (isset($_SESSION['viewed_groups'])) { // 6/10/11 $curr_viewed = explode(",", $_SESSION['viewed_groups']); } if (!isset($curr_viewed)) { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($al_groups as $grp) { // 6/10/11 $where3 = count($al_groups) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } else { $x = 0; // 6/10/11 $where2 = "WHERE ("; // 6/10/11 foreach ($curr_viewed as $grp) { // 6/10/11 $where3 = count($curr_viewed) > $x + 1 ? " OR " : ")"; $where2 .= "`a`.`group` = '{$grp}'"; $where2 .= $where3; $x++; } } $where2 .= "AND `a`.`type` = 2"; // 6/10/11 $query = "SELECT *, UNIX_TIMESTAMP(updated) AS `updated`,\n\t\t`t`.`id` AS `type_id`,\n\t\t`r`.`id` AS `unit_id`,\n\t\t`r`.`name` AS `name`,\n\t\t`s`.`description` AS `stat_descr`,\n\t\t`r`.`description` AS `unit_descr`, \n\t\t(SELECT COUNT(*) as numfound FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\tWHERE `{$GLOBALS['mysql_prefix']}assigns`.`responder_id` = unit_id AND `clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' ) AS `nr_assigned` \n\t\tFROM `{$GLOBALS['mysql_prefix']}responder` `r` \n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}allocates` `a` ON ( `r`.`id` = a.resource_id )\t\t\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}unit_types` `t` ON ( `r`.`type` = t.id )\t\n\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}un_status` `s` ON ( `r`.`un_status_id` = s.id ) \t\t\n\t\t{$where2} GROUP BY unit_id ORDER BY `nr_assigned` DESC, `handle` ASC, `r`.`name` ASC "; // 2/1/10, 3/15/10, 6/10/11 $result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $num_units = mysql_affected_rows(); $aprs = FALSE; $instam = FALSE; $locatea = FALSE; // 7/23/09 $gtrack = FALSE; // 7/23/09 $glat = FALSE; // 7/23/09 $i = 0; // counter // ============================================================================= $bulls = array(0 => "", 1 => "red", 2 => "green", 3 => "white", 4 => "black"); $utc = gmdate("U"); // ========== major while() for RESPONDER ========== while ($row = stripslashes_deep(mysql_fetch_assoc($result))) { $resp_gps = get_allocates(2, $row['unit_id']); // 6/10/11 $grp_names = "Groups Assigned: "; // 6/10/11 $y = 0; // 6/10/11 foreach ($resp_gps as $value) { // 6/10/11 $counter = count($resp_gps) > $y + 1 ? ", " : ""; $grp_names .= get_groupname($value); $grp_names .= $counter; $y++; } $grp_names .= " / "; $aprs = $instam = $locatea = $gtrack = $glat = $t_tracker = FALSE; // all trackers off, 5/11/11 added internal Tickets Tracker $temp = explode("/", $row['name']); $index = substr($temp[count($temp) - 1], -6, strlen($temp[count($temp) - 1])); // 3/19/11 $the_on_click = my_is_float($row['lat']) ? " onClick = myclick({$row['unit_id']}); " : " onClick = myclick_nm({$row['unit_id']}); "; $the_bg_color = $GLOBALS['UNIT_TYPES_BG'][$row['icon']]; // 2/1/10 $the_text_color = $GLOBALS['UNIT_TYPES_TEXT'][$row['icon']]; // 2/1/10 $index = $row['icon_str']; // 4/28/11 $track_type = get_remote_type($row); // 7/6/11 $do_dispatch = can_do_dispatch($row); // 11/17/09 $got_point = FALSE; print "\n\t\tvar i={$i};\n"; $tofac = is_guest() ? "" : " <A HREF='{units_nm.php?func=responder&view=true&dispfac=true&id=" . $row['unit_id'] . "'><U>To Facility</U></A> "; // 10/6/09 $todisp = is_guest() || !can_do_dispatch($row) ? "" : " <A HREF='" . basename(__FILE__) . "?func=responder&view=true&disp=true&id=" . $row['unit_id'] . "'><U>Dispatch</U></A> "; // 08/8/02, 9/19/09 $toedit = is_guest() ? "" : " <A HREF='" . basename(__FILE__) . "?func=responder&edit=true&id=" . $row['unit_id'] . "'><U>Edit</U></A> "; // 10/8/08 $temp = $row['un_status_id']; // 2/24/09 $the_status = array_key_exists($temp, $status_vals) ? $status_vals[$temp] : "??"; // 2/2/09 $the_bull = ""; // define the bullet $update_error = strtotime('now - 6 hours'); // set the time for silent setting if ($track_type > 0) { // get most recent position data $do_legend = TRUE; } // name, handle $name = addslashes(shorten($row['name'], 40)); // 10/8/09 $handle = addslashes($row['handle']); $sidebar_line = "<TD TITLE = '{$handle}' {$the_on_click}><U><SPAN STYLE='background-color:{$the_bg_color}; opacity: .7; color:{$the_text_color};'>{$handle}</SPAN></U></TD>"; // 10/8/09 $sidebar_line .= "<TD TITLE = '" . addslashes($row['name']) . "' {$the_on_click}><U>{$name}</TD>"; // 10/8/09 // assignments 3/16/09, 3/15/10 $query = "SELECT * FROM `{$GLOBALS['mysql_prefix']}assigns` \n\t\t\tLEFT JOIN `{$GLOBALS['mysql_prefix']}ticket` `t` ON (`{$GLOBALS['mysql_prefix']}assigns`.`ticket_id` = `t`.`id`)\n\t\t\tWHERE `responder_id` = '{$row['unit_id']}' AND (`clear` IS NULL OR DATE_FORMAT(`clear`,'%y') = '00' )"; $result_as = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename(__FILE__), __LINE__); $row_assign = mysql_affected_rows() == 0 ? FALSE : stripslashes_deep(mysql_fetch_assoc($result_as)); switch ($row_assign['severity']) { //color tickets by severity case $GLOBALS['SEVERITY_MEDIUM']: $severityclass = 'severity_medium'; break; case $GLOBALS['SEVERITY_HIGH']: $severityclass = 'severity_high'; break; default: $severityclass = 'severity_normal'; break; } switch (mysql_num_rows($result_as)) { // 10/4/10 case 0: $the_disp_stat = ""; break; case 1: $the_disp_stat = get_disp_status($row_assign) . " "; break; default: // multiples $the_disp_stat = "<SPAN CLASS='disp_stat'> " . mysql_affected_rows() . " </SPAN> "; break; } // end switch() $tick_ct = mysql_affected_rows() > 1 ? "(" . mysql_num_rows($result_as) . ") " : ""; $ass_td = mysql_affected_rows() > 0 ? "<TD CLASS='{$severityclass}' TITLE = '{$row_assign['scope']}' STYLE = 'white-space:nowrap;' >{$the_disp_stat}" . shorten($row_assign['scope'], 24) . "</TD>" : "<TD>na</TD>"; $sidebar_line .= $row_assign ? $ass_td : "<TD>na</TD>"; // status, mobility - 9/11/10 $sidebar_line .= "<TD TITLE = '" . addslashes($the_status) . "'> " . get_status_sel($row['unit_id'], $row['un_status_id'], "u") . "</TD>"; $sidebar_line .= "<TD TITLE ='{$row['callsign']}'> {$GLOBALS['TRACK_2L'][$track_type]} {$the_bull}</TD>"; // 4/14/10 // as of $strike = $strike_end = ""; $the_time = $row['updated']; // 7/6/11 $the_class = ""; if ($row['mobile'] == 1 && abs($utc - $the_time) > $GLOBALS['TOLERANCE']) { // identify non-current values $strike = "<STRIKE>"; $strike_end = "</STRIKE>"; } $sidebar_line .= "<TD CLASS='{$the_class}'> {$strike}" . format_sb_date($the_time) . "{$strike_end}</TD>"; // 6/17/08 ?> var unit_id = "<?php print $index; ?> "; // 10/8/09 var the_class = "td_label"; // 4/3/09 var handle = "<?php print substr($row['handle'], 1); ?> "; var longhandle = "<?php print $row['handle']; ?> "; <?php print "\tdo_sidebar(\" {$sidebar_line} \" , i, {$row['id']}, {$row['unit_id']}, unit_id);\n"; // sidebar only - no map, 11/11/09 $i++; // zero-based } // end ========== while() for RESPONDER ========== $source_legend = isset($do_legend) ? "<TD CLASS='emph' ALIGN='left'>Source time</TD>" : "<TD></TD>"; // if any remote data/time 3/24/09 ?> side_bar_html+= "<TR CLASS='" + colors[i%2] +"'><TD COLSPAN=5> </TD><?php print $source_legend; ?> </TR>"; <?php if (!empty($addon)) { print "\n\tside_bar_html +=\"" . $addon . "\"\n"; } ?> side_bar_html +="</TABLE>\n"; $("side_bar").innerHTML += side_bar_html; // append the assembled side_bar_html contents to the side bar div $("num_units").innerHTML = <?php print $num_units; ?> ; </SCRIPT> <?php }