function show_edit_hrap_menu($error_msg = "")
{
    global $crew;
    $hrap = new hrap();
    show_header();
    try {
        $hrap->load($_GET['hrap']);
        if ($hrap->get_crew_by_year($_SESSION['current_view']['year']) != $crew->get('id')) {
            throw new Exception('The HRAP you selected is not a member of the ' . $_SESSION['current_view']['year'] . ' roster.');
        }
        echo "<div style=\"width:700px; text-align:left;\">\n" . "<ul><li>The information below applies to all roster years and all crews that this rappeller has worked for.</li>\n" . "\t\t<li>Changes will be applied when you click the \"Update this HRAP\" button (this page <i>is</i> your confirmation).</li></ul>\n" . "</div><br>\n\n";
        echo "<form enctype=\"multipart/form-data\" action=\"" . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'] . "\" method=\"post\" name=\"edit_hrap_form\">\n" . "<table style=\"margin:0 auto 0 auto;\">\n" . "\t<tr><td>First Name</td><td>:</td><td style=\"width:150px;\"><input type=\"text\" name=\"firstname\" value=\"" . $hrap->firstname . "\" class=\"input_field\"></td><td style=\"width:auto;\"></td></tr>\n" . "\t<tr><td>Last Name</td><td>:</td><td><input type=\"text\" name=\"lastname\" value=\"" . $hrap->lastname . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td style=\"vertical-align:top;\">Birthdate</td><td style=\"vertical-align:top;\">:</td>" . "\t\t<td style=\"vertical-align:top;\"><input type=\"text\" name=\"birthdate\" value=\"" . $hrap->birthdate . "\" class=\"input_field\" readonly=\"readonly\"><br>" . "\t\t\t<small><a href=\"javascript:showCal('Calendar2')\">Select Date</a></small></td><td></td></tr>\n";
        echo "\t<tr><td>Year of<br>1st Rappel<br>(yyyy)</td><td>:</td><td><input type=\"text\" name=\"year_of_1st_rappel\" value=\"" . $hrap->year_of_1st_rappel . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td>IQCS Number</td><td>:</td><td><input type=\"text\" name=\"iqcs_num\" value=\"" . $_SESSION['form_memory']['field12'] . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td>Number of proficiency rappels <br>NOT in the RapRec system</td><td>:</td><td><input type=\"text\" name=\"count_offset_proficiency\" value=\"" . $hrap->count_offset_proficiency . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td>Number of operational rappels <br>NOT in the RapRec system</td><td>:</td><td><input type=\"text\" name=\"count_offset_operational\" value=\"" . $hrap->count_offset_operational . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td>Gender</td><td>:</td><td>Male<input type=\"radio\" name=\"gender\" value=\"male\" ";
        if (strtolower($hrap->gender) == "male") {
            echo "checked";
        }
        echo ">&nbsp;&nbsp; Female<input type=\"radio\" name=\"gender\" value=\"female\" ";
        if (strtolower($hrap->gender) == "female") {
            echo "checked";
        }
        echo "></td><td></td></tr>\n";
        echo "\t<tr><td>Spotter<br>Qualified?</td><td>:</td><td>No<input type=\"radio\" name=\"spotter\" value=\"0\" ";
        if ($hrap->spotter == "0") {
            echo "checked";
        }
        echo "><br> " . "\t\t\tYes<input type=\"radio\" name=\"spotter\" value=\"1\" ";
        if ($hrap->spotter == "1") {
            echo "checked";
        }
        echo "><br> " . "\t\t\tTrainee<input type=\"radio\" name=\"spotter\" value=\"2\" ";
        if ($hrap->spotter == "2") {
            echo "checked";
        }
        echo "></td><td></td></tr>\n";
        echo "\t<tr><td>Number of proficiency spots<br>NOT in the RapRec system</td><td>:</td><td><input type=\"text\" name=\"spot_count_offset_proficiency\" value=\"" . $hrap->spot_count_offset_proficiency . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td>Number of operational spots<br>NOT in the RapRec system</td><td>:</td><td><input type=\"text\" name=\"spot_count_offset_operational\" value=\"" . $hrap->spot_count_offset_operational . "\" class=\"input_field\"></td><td></td></tr>\n";
        echo "\t<tr><td>Photo</td><td>:</td><td><img src=\"" . $hrap->headshot_filename . "\"></td><td></td></tr>\n" . "\t<tr><td>Remove Photo</td><td>:</td><td style=\"text-align:left;\"><input type=\"checkbox\" name=\"remove_headshot\" value=\"1\" /></td><td></td></tr>\n" . "\t<tr><td>&nbsp;</td><td>&nbsp;</td><td colspan=\"2\"><input name=\"uploadedfile\" type=\"file\" value=\"\" class=\"input_field\" />" . "\t\t\t<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"3500000\" /></td></tr>\n" . "\t<tr><td></td><td></td><td><input type=\"hidden\" name=\"hrap_id\" value=\"" . $hrap->id . "\"><input type=\"submit\" value=\"Update this HRAP\"></td><td></td></tr>\n" . "</table>\n" . "</form><br>\n\n" . "</div>\n\n";
        if ($error_msg != "") {
            echo "<div class=\"error_msg\"><br><br><br>" . $error_msg . "</div>\n\n";
        }
    } catch (Exception $e) {
        /*			echo "<div class=\"error_msg\">".$e->getMessage()."</div><br>\n"
        				."<a href=\"".$_SERVER['PHP_SELF']."?crew=".$crew->id."\">Return to Crew Roster</a>\n</div>\n\n";
        */
        throw new Exception($e->getMessage());
    }
}
Example #2
0
function make_menu()
{
    /******* PROCESS LOGIN ATTEMPT ***************************/
    /*
    		if(isset($_POST['username']) && isset($_POST['passwd'])) $login_result = login($_POST['username'], $_POST['passwd']);
    		elseif(!isset($_SESSION['logged_in']) && !isset($login_result)) $login_result = array(-1,"No login attempt made yet");
    		else $login_result = array(-1,"No login attempt made yet");
    */
    /******* MAKE LOCATION BAR ***************************/
    if (isset($_GET['year']) && check_year($_GET['year'])) {
        $_SESSION['current_view']['year'] = $_GET['year'];
    } elseif (!isset($_SESSION['current_view']['year'])) {
        $_SESSION['current_view']['year'] = date('Y');
    }
    if (!isset($_SESSION['mobile'])) {
        $_SESSION['mobile'] = false;
    }
    $current_file = explode('/', $_SERVER['PHP_SELF']);
    $current_file = strtolower($current_file[sizeof($current_file) - 1]);
    // Get the filename of the script that called this function (no path info, just the filename)
    $region = NULL;
    $crew = new crew();
    $hrap = new hrap();
    $op = NULL;
    try {
        //This exception below is meant solely to trigger the 'catch' block.  The message is never displayed to the user.
        if ($current_file == "index.php" || $current_file == "proficiency_report.php") {
            throw new Exception('You cannot specify an individual HRAP on the index or proficiency page.');
        }
        isset($_GET['hrap']) ? $hrap->load($_GET['hrap']) : $hrap->load(false);
        $crew->load($hrap->get_crew_by_year($_SESSION['current_view']['year']));
        $_SESSION['current_view']['hrap'] = $hrap;
        if (isset($crew->id)) {
            $_SESSION['current_view']['region'] = $crew->region;
            $_SESSION['current_view']['crew'] = $crew;
            $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
            $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->region . "\">R" . $crew->region . "</a>";
            $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->region . "&crew=" . $crew->id . "\">" . $crew->name . "</a>";
            $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->region . "&crew=" . $crew->id . "&hrap=" . $hrap->id . "\">" . $hrap->name . "</a>";
        } else {
            /* The requested HRAP is not assigned to a crew for the requested year, maintain the previous 'current_view' (do nothing)*/
        }
    } catch (Exception $e) {
        if (isset($_GET['eq_type'])) {
            // The current view is on a piece of equipment, retain CREW and REGION but reset all other 'current_view' parameter
            $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
            if (isset($_GET['eq_id'])) {
                try {
                    $eq = new $_GET['eq_type']();
                    $eq->load($_GET['eq_id']);
                    $_SESSION['current_view']['crew'] = new crew();
                    $_SESSION['current_view']['crew']->load($eq->get('crew_affiliation_id'));
                    $result = mydb::cxn()->query("SELECT region FROM crews WHERE id = " . $eq->get('crew_affiliation_id'));
                    $row = $result->fetch_assoc();
                    $_SESSION['current_view']['region'] = $row['region'];
                    $_SESSION['location_bar'] .= " / <a href=\"view_equipment.php?eq_type=" . $_GET['eq_type'] . "&region=" . $_SESSION['current_view']['region'] . "\">R" . $_SESSION['current_view']['region'] . "</a>" . " / <a href=\"view_equipment.php?eq_type=" . $_GET['eq_type'] . "&crew=" . $_SESSION['current_view']['crew']->get('id') . "\">" . $_SESSION['current_view']['crew']->get('name') . "</a>" . " / <a href=\"view_equipment.php?crew=" . $_SESSION['current_view']['crew']->get('id') . "\">Equipment</a>";
                } catch (Exception $e) {
                }
            } elseif (isset($_GET['crew']) && check_crew($_GET['crew'])) {
                $crew->load($_GET['crew']);
                $_SESSION['current_view']['region'] = $crew->get('region');
                $_SESSION['current_view']['crew'] = $crew;
                $_SESSION['location_bar'] .= " / <a href=\"view_equipment.php?eq_type=" . $_GET['eq_type'] . "&region=" . $_SESSION['current_view']['region'] . "\">R" . $_SESSION['current_view']['region'] . "</a>" . " / <a href=\"view_equipment.php?eq_type=" . $_GET['eq_type'] . "&crew=" . $_SESSION['current_view']['crew']->get('id') . "\">" . $_SESSION['current_view']['crew']->get('name') . "</a>" . " / <a href=\"view_equipment.php?crew=" . $_SESSION['current_view']['crew']->get('id') . "\">Equipment</a>";
            } elseif (isset($_GET['region']) && is_valid_region($_GET['region'])) {
                $_SESSION['current_view']['region'] = $_GET['region'];
                $_SESSION['location_bar'] .= " / <a href=\"view_equipment.php?eq_type=" . $_GET['eq_type'] . "&region=" . $_SESSION['current_view']['region'] . "\">R" . $_SESSION['current_view']['region'] . "</a>" . " / <a href=\"view_equipment.php?region=" . $_SESSION['current_view']['region'] . "\">Equipment</a>";
                $_SESSION['current_view']['crew'] = NULL;
            }
            $_SESSION['current_view']['hrap'] = NULL;
            $_SESSION['current_view']['op'] = NULL;
        } elseif (isset($_GET['crew']) && check_crew($_GET['crew'])) {
            try {
                $crew->load($_GET['crew']);
            } catch (Exception $e) {
            }
            $_SESSION['current_view']['region'] = $crew->get('region');
            $_SESSION['current_view']['crew'] = $crew;
            $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
            if ($current_file != "modify_roster.php") {
                $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->get('region') . "\">R" . $crew->get('region') . "</a>";
            } else {
                $_SESSION['location_bar'] .= " / <a href=\"./index.php?region=" . $crew->get('region') . "\">R" . $crew->get('region') . "</a>";
            }
            $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->get('region') . "&crew=" . $crew->get('id') . "\">" . $crew->get('name') . "</a>";
            if ($current_file == "proficiency_report.php") {
                $_SESSION['location_bar'] .= " / Proficiency Report";
            }
            // Clear the unknown 'current_view' elements
            $_SESSION['current_view']['hrap'] = NULL;
            $_SESSION['current_view']['op'] = NULL;
        } elseif (isset($_GET['region']) && is_valid_region($_GET['region'])) {
            $region = $_GET['region'];
            $_SESSION['current_view']['region'] = $region;
            $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
            $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $region . "\">R" . $region . "</a>";
            if ($current_file == "proficiency_report.php") {
                $_SESSION['location_bar'] .= " / Proficiency Report";
            }
            // Clear the unknown 'current_view' elements
            $_SESSION['current_view']['crew'] = NULL;
            $_SESSION['current_view']['hrap'] = NULL;
            $_SESSION['current_view']['op'] = NULL;
        } elseif (isset($_GET['op']) && operation::exists($_GET['op'])) {
            // If a specific OPERATION is being viewed (and none of the above criteria were met), there is a mix of different CREWS, HRAPS, and possibly REGIONS...
            // So just maintain the same location bar that was shown before the user accessed this page
            $op = $_GET['op'];
            // DO NOTHING
        } elseif ($current_file == "proficiency_report.php") {
            // Viewing the proficiency report, but no Crew or Region has been specified.
            // 1st - Look for pre-existing crew or region in the $_SESSION['current_view'] array
            // 2nd - Try to determine the current user's crew and use that
            // 3rd - Display the page with no parameters - the page will show an error and offer a link to the Home page
            if (isset($_SESSION['current_view']['crew'])) {
                $crew = $_SESSION['current_view']['crew'];
                $region = $crew->get('region');
                $_SESSION['current_view']['region'] = $region;
                $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
                $_SESSION['location_bar'] .= " / <a href=\"" . $current_file . "?region=" . $region . "\">R" . $region . "</a>";
                $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->get('region') . "&crew=" . $crew->get('id') . "\">" . $crew->get('name') . "</a>";
                $_SESSION['location_bar'] .= " / Proficiency Report";
                // Clear the unknown 'current_view' elements
                $_SESSION['current_view']['hrap'] = NULL;
                $_SESSION['current_view']['op'] = NULL;
            } elseif (isset($_SESSION['current_view']['region'])) {
                $region = $_SESSION['current_view']['region'];
                $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
                $_SESSION['location_bar'] .= " / <a href=\"" . $current_file . "?region=" . $region . "\">R" . $region . "</a>";
                $_SESSION['location_bar'] .= " / Proficiency Report";
                // Clear the unknown 'current_view' elements
                $_SESSION['current_view']['crew'] = NULL;
                $_SESSION['current_view']['hrap'] = NULL;
                $_SESSION['current_view']['op'] = NULL;
            } elseif (isset($_SESSION['current_user']) && $_SESSION['current_user']->get('crew_affiliation_id') != false) {
                $crew = new crew();
                $crew->load($_SESSION['current_user']->get('crew_affiliation_id'));
                $region = $crew->get('region');
                $_SESSION['current_view']['crew'] = $crew;
                $_SESSION['current_view']['region'] = $region;
                $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
                $_SESSION['location_bar'] .= " / <a href=\"" . $current_file . "?region=" . $region . "\">R" . $region . "</a>";
                $_SESSION['location_bar'] .= " / <a href=\"./" . $current_file . "?region=" . $crew->get('region') . "&crew=" . $crew->get('id') . "\">" . $crew->get('name') . "</a>";
                $_SESSION['location_bar'] .= " / Proficiency Report";
                // Clear the unknown 'current_view' elements
                $_SESSION['current_view']['hrap'] = NULL;
                $_SESSION['current_view']['op'] = NULL;
            }
        } else {
            // Clear the unknown 'current_view' elements
            $_SESSION['location_bar'] = "Location: <a href=\"./index.php\">Home</a>";
            $_SESSION['current_view']['region'] = NULL;
            $_SESSION['current_view']['crew'] = NULL;
            $_SESSION['current_view']['hrap'] = NULL;
            $_SESSION['current_view']['op'] = NULL;
        }
    }
    // End: try/catch block
    /********************************************************************************************************************************/
    /*******************<< USER is not logged in (yet) >>****************************************************************************/
    if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] != 1) {
        //Initialize the current_user as a GUEST
        $_SESSION['current_user'] = new user('guest');
        /******* PROCESS LOGIN ATTEMPT ***************************/
        try {
            if (!isset($_POST['username']) || !isset($_POST['passwd'])) {
                throw new Exception('');
            }
            //No login attempt was made
            login($_POST['username'], $_POST['passwd']);
        } catch (Exception $e) {
            // If this block is reached, either no login attempt was made, or a login attempt failed with an exception.
            echo "<div id=\"left_sidebar_title\">Login</div>\n";
            echo "<form action=\"" . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'] . "\" method=\"post\" style=\"margin:0; padding:0;\">\n" . "\t<table style=\"margin:0; padding:0;\">\n" . "\t\t<tr><td colspan=\"2\"><div id=\"login_result\">" . $e->getMessage() . "</div></td></tr>\n" . "\t\t<tr><td>Username:</td><td><input name=\"username\" type=\"text\" class=\"loginfield\" value=\"" . (isset($_POST['username']) ? $_POST['username'] : "") . "\" /></td></tr>\n" . "\t\t<tr><td>Password:</td><td><input name=\"passwd\" type=\"password\" class=\"loginfield\" /></td></tr>\n" . "\t\t<tr><td>&nbsp;</td><td style=\"text-align:right;\"><input type=\"submit\" value=\"Login\" class=\"form_button\" style=\"margin-right:0;\" /></td></tr>\n" . "\t</table>\n" . "</form>";
            echo "<hr><br>\n" . "<table>\n" . "\t<tr><td>You are viewing information for the following year:</td></tr>\n" . "\t<tr><td style=\"text-align:center;vertical-align:center;padding:0;\">\n" . "\t\t<form action=\"" . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'] . "\" method=\"GET\" id=\"sidebar_year_form\" name=\"sidebar_year_form\">\n" . "\t\t<input name=\"year\" type=\"text\" value=\"" . $_SESSION['current_view']['year'] . "\" style=\"width:40px; height:1.3em; font-size:1.2em; font-weight:bold; margin:1px;\">\n";
            if ($region != NULL) {
                echo "<input type=\"hidden\" name=\"region\" value=\"" . $_GET['region'] . "\">\n";
            }
            if ($crew != NULL) {
                echo "<input type=\"hidden\" name=\"crew\" value=\"" . $crew->get('id') . "\">\n";
            }
            if ($hrap != NULL) {
                echo "<input type=\"hidden\" name=\"hrap\" value=\"" . $hrap->get('id') . "\">\n";
            }
            if ($op != NULL) {
                echo "<input type=\"hidden\" name=\"op\" value=\"" . $op . "\">\n";
            }
            if (isset($_GET['function']) && $_GET['function'] != '') {
                echo "<input type=\"hidden\" name=\"function\" value=\"" . $_GET['function'] . "\">\n";
            }
            echo "\t\t<input type=\"button\" value=\"Update\" class=\"form_button\" onClick=' document.forms.sidebar_year_form.submit();'>\n" . "\t\t</form>\n" . "\t\t</td>\n" . "\t</tr>\n" . "</table>\n" . "<br><hr>\n\n";
        }
    }
    /******* USER IS LOGGED IN*******************************************************************************************************/
    if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == 1) {
        echo "<div id=\"left_sidebar_title\">RapRec Menu</div>\n";
        echo "You are logged in as:<br />" . $_SESSION['current_user']->get('firstname') . " " . $_SESSION['current_user']->get('lastname') . "<br /><i>" . $_SESSION['current_user']->get('username') . "</i><br><br>\n";
        echo "<a href=\"index.php?logout=1" . (isset($_SESSION['mobile']) ? "&mobile=" . $_SESSION['mobile'] : "") . "\">Logout</a><br>";
        echo "<hr><br>\n" . "<table>\n" . "\t<tr><td>You are viewing information for the following year:</td></tr>\n" . "\t<tr><td>\n" . "\t\t<form action=\"" . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'] . "\" method=\"GET\" id=\"sidebar_year_form\" name=\"sidebar_year_form\">\n" . "\t\t<input name=\"year\" id=\"sidebar_year\" type=\"text\" size=\"4\" value=\"" . $_SESSION['current_view']['year'] . "\" style=\"width:40px\">\n";
        if ($region != NULL) {
            echo "<input type=\"hidden\" name=\"region\" value=\"" . $_GET['region'] . "\">\n";
        }
        if ($crew != NULL) {
            echo "<input type=\"hidden\" name=\"crew\" value=\"" . $crew->get('id') . "\">\n";
        }
        if ($hrap != NULL) {
            echo "<input type=\"hidden\" name=\"hrap\" value=\"" . $hrap->get('id') . "\">\n";
        }
        if ($op != NULL) {
            echo "<input type=\"hidden\" name=\"op\" value=\"" . $op . "\">\n";
        }
        if (isset($_GET['function']) && $_GET['function'] != '') {
            echo "<input type=\"hidden\" name=\"function\" value=\"" . $_GET['function'] . "\">\n";
        }
        echo "<input type=\"button\" value=\"Update\" class=\"form_button\" onClick='document.forms.sidebar_year_form.submit();'></form></td></tr></table><br><hr>\n\n";
        /*
        		//Decide what to show in the 'Location Bar' when navigating to the 'update_rappels.php' page, since updating rappels is not a crew-dependent operation
        		if(isset($_SESSION['current_view']['crew']) && ($_SESSION['current_view']['crew']->get('id') != NULL)) $update_rappels_crew_id = $_SESSION['current_view']['crew']->get('id');
        		else $update_rappels_crew_id = $_SESSION['current_user']->get('crew_affiliation_id');
        */
        $crew_id = "";
        $crew_name = "None Selected";
        $region = "";
        if (isset($_SESSION['current_view']['crew'])) {
            $crew_id = $_SESSION['current_view']['crew']->get('id');
            $crew_name = $_SESSION['current_view']['crew']->get('name');
        }
        if (isset($_SESSION['current_view']['region'])) {
            $region = $_SESSION['current_view']['region'];
        }
        $academy_id = get_academy_id($region);
        echo "<h3>" . ucwords(str_replace("_", " ", $_SESSION['current_user']->get('account_type'))) . "</h3><br><br>\n" . "<ul class=\"sidebar_menu\">\n";
        echo "<li>Home\n" . "<ul>\n" . "\t<li><a href=\"index.php\">National Map</a></li>\n";
        if ($_SESSION['current_user']->get('crew_affiliation_id')) {
            echo "\t<li><a href=\"index.php?crew=" . $_SESSION['current_user']->get('crew_affiliation_id') . "\">My Crew</a></li>\n";
        }
        echo "<li><a href=\"weekly_report.php\">Weekly Report</a></li>\n";
        echo "</ul></li>\n";
        /*
        			if($crew_id != "") {
        				echo "<li><a href=\"modify_roster.php?crew=".$crew_id."\">Current Crew<br><small>(".$crew_name.")</small></a>\n"
        					."<ul>\n"
        					."	<li><a href=\"modify_roster.php?crew=".$crew_id."\">View / Edit Crewmembers</a></li>\n"
        					."	<li><a href=\"modify_roster.php?crew=".$crew_id."&function=add_hrap_menu\">Add Crewmembers</a></li>\n"
        					."</ul></li>\n\n";
        			}
        */
        if ($region != "" || $crew_id != "" || $_SESSION['current_user']->get('account_type') == 'crew_admin') {
            echo "<li>Rosters\n<ul>\n";
        }
        if ($region != "") {
            echo "\t<li><a href=\"index.php?region=" . $region . "\">Regional Crew List</a></li>\n";
        }
        if ($crew_id != "") {
            echo "\t<li><a href=\"index.php?region=" . $region . "&crew=" . $crew_id . "\">Crew Roster</a></li>\n";
        }
        if ($_SESSION['current_user']->get('account_type') == 'crew_admin') {
            echo "\t<li><a href=\"modify_roster.php?&crew=" . $_SESSION['current_user']->get('crew_affiliation_id') . "\">Modify My Roster</a></li>\n";
        }
        if ($crew_id != "" && $_SESSION['current_user']->get('account_type') == 'admin') {
            echo "\t<li><a href=\"modify_roster.php?&crew=" . $crew_id . "\">Modify This Roster</a></li>\n";
        }
        if ($region != "" || $crew_id != "" || $_SESSION['current_user']->get('account_type') == 'crew_admin') {
            echo "</ul></li>\n";
        }
        if (in_array($_SESSION['current_user']->get('account_type'), array('admin', 'crew_admin'))) {
            echo "\t<li>Rappel Records\n" . "\t<ul>\n" . "\t<li><a href=\"update_rappels.php?function=add_rappel\">Add a New Rappel</a></li>\n";
        } elseif ($crew_id != "" || $region != "") {
            echo "\t<li>Rappel Records\n" . "\t<ul>\n";
        }
        if ($crew_id != "" || $region != "") {
            echo "\t<li><a href=\"proficiency_report.php?region=" . $region . "\">Regional Proficiency Report</a></li>\n" . "\t<li><a href=\"view_rappels.php?region=" . $region . "\">Regional Rappels</a></li>\n";
        }
        if ($crew_id != "") {
            echo "\t<li><a href=\"proficiency_report.php?crew=" . $crew_id . "\">Crew Proficiency Report</a></li>\n" . "\t<li><a href=\"view_rappels.php?crew=" . $crew_id . "\">Crew Rappels</a></li>\n";
        }
        if ($crew_id != "" || $region != "" || in_array($_SESSION['current_user']->get('account_type'), array('admin', 'crew_admin'))) {
            echo "</ul></li>\n\n";
        }
        if ($crew_id != "" || $region != "") {
            echo "<li>Equipment\n" . "<ul>\n";
            if (in_array($_SESSION['current_user']->get('account_type'), array('admin', 'crew_admin'))) {
                echo "\t<li><a href=\"add_new_equipment.php?crew=" . $crew->get('id') . "\">Add New Equipment</a></li>\n";
            }
            echo "\t<li><a href=\"view_equipment.php?region=" . $region . "\">Regional Equipment</a></li>\n";
            if ($academy_id != false) {
                echo "\t<li><a href=\"view_equipment.php?crew=" . $academy_id . "&region=" . $region . "\">Academy Equipment</a></li>\n";
            }
            if ($crew_id != "") {
                echo "\t<li><a href=\"view_equipment.php?crew=" . $crew_id . "\">Crew Equipment</a></li>\n";
            }
            echo "</ul></li>\n\n";
        }
        echo "\t<li>Account Management\n" . "\t\t<ul><li><a href=\"account_management.php?function=edit_account&user_id=" . $_SESSION['current_user']->get('id') . "\">Edit My Account</a></li>\n";
        if (in_array($_SESSION['current_user']->get('account_type'), array('admin', 'crew_admin'))) {
            echo "\t\t<li><a href=\"account_management.php\">All Accounts</a></li>\n";
        }
        if (in_array($_SESSION['current_user']->get('account_type'), array('admin', 'crew_admin'))) {
            echo "\t\t<li><a href=\"account_management.php?function=create_account\">Create an Account</a></li></ul>\n";
        }
        echo "\t</li>\n";
        echo "</ul>\n\n";
    }
}
 function get_crewmembers($year)
 {
     $query = "SELECT rosters.id, hrap_id, crew_id, year FROM rosters INNER JOIN hraps ON rosters.hrap_id = hraps.id WHERE year = '" . $year . "' && crew_id = " . $this->id . " ORDER BY firstname";
     $result_rosters = mydb::cxn()->query($query);
     if (mydb::cxn()->affected_rows < 1) {
         throw new Exception('There is no roster information for ' . $this->name . ' (Crew #' . $this->id . ') in ' . $year);
     } else {
         $this->crewmembers = array();
         // Clear any existing crewmember info from the member array
         while ($row_rosters = $result_rosters->fetch_assoc()) {
             $temp_hrap = new hrap();
             $temp_hrap->load($row_rosters['hrap_id']);
             $this->crewmembers[] = $temp_hrap;
         }
         return 1;
         // At least 1 crewmember has been loaded into the array, return SUCCESS (1)
     }
     // End: else
     return 0;
     // No crewmember info has been loaded into the member array (this->crewmembers) - return FAILURE (0)
 }
function update_operation_in_db()
{
    try {
        $success_message = "";
        $date_array = explode('/', $_POST['date']);
        $year = $date_array[2];
        $op = new operation();
        $op->load($_GET['op']);
        $op->set('date', $_POST['date']);
        $op->set('type', $_POST['operation_type']);
        if ($_POST['operation_type'] == 'operational') {
            $op->set('incident_number', $_POST['inc_1'] . "-" . $_POST['inc_2'] . "-" . $_POST['inc_3']);
        }
        $op->set('height', $_POST['height']);
        $op->set('canopy_opening', $_POST['canopy_opening']);
        //$op->set('weather', $_POST['weather']);
        $op->set('location', $_POST['location']);
        //$op->set('comments', $_POST['comments']);
        $op->set('pilot_name', $_POST['pilot_name']);
        $op->set('aircraft_type', $_POST['aircraft_type']);
        $op->set('aircraft_configuration', $_POST['configuration']);
        $op->set('aircraft_tailnumber', $_POST['tailnumber']);
        $op->set('spotter', $_POST['name_spotter_id']);
        $op->save();
        // Enter the info we have so far. This will also set the operation_id from the autoincrement database ID, which we need to bind each rappel below
        // Create a RAPPEL OBJECT for each rappel that was $_POST'ed.
        // We can use the NAME field ($_POST['name_stick1_left_text']) to tell if a rappel is populated or not
        // because we have already checked for partially-completed rappel boxes. So if the NAME field is filled out, we
        // know that the rest of the required information for that rappel is also present.
        $stick_options = array(1, 2, 3);
        $door_options = array('left', 'right');
        foreach ($stick_options as $stick) {
            foreach ($door_options as $door) {
                $position = 'stick' . $stick . '_' . $door;
                $stick_name = 'name_' . $position . '_text';
                if (isset($_POST[$stick_name]) && $_POST[$stick_name] != "") {
                    $hrap = new hrap();
                    $hrap->load($_POST['name_' . $position . '_id']);
                    if ($_SESSION['current_user']->get('account_type') == 'crew_admin' && $hrap->get_crew_by_year($year) == $_SESSION['current_user']->get('crew_affiliation_id') || $_SESSION['current_user']->get('account_type') == 'admin') {
                        $new_rap = new rappel();
                        try {
                            $new_rap->load($op->get_rappel($stick, $door)->get('id'));
                        } catch (Exception $e) {
                            /* If the requested rappel does not already exist, the rappel object will be CREATED instead of MODIFIED */
                        }
                        $new_rap->set('operation_id', $op->get('id'));
                        // Associate this rappel with the operation
                        $new_rap->set('hrap_id', $_POST['name_' . $position . '_id']);
                        $new_rap->set('genie', $_POST['genie_' . $position . '_id']);
                        $new_rap->set('rope', $_POST['rope_' . $position . '_id']);
                        $new_rap->set('rope_end', $_POST['rope_' . $position . '_end']);
                        if (isset($_POST['knot_' . $position])) {
                            $new_rap->set('knot', $_POST['knot_' . $position]);
                        }
                        if (isset($_POST['eto_' . $position])) {
                            $new_rap->set('eto', $_POST['eto_' . $position]);
                        }
                        $new_rap->set('comments', $_POST['comments_' . $position]);
                        $new_rap->set('stick', $stick);
                        $new_rap->set('door', $door);
                        $new_rap->save();
                        // Save this rappel to the database
                    }
                }
                // End: if($_POST[$stick_name] != "")
            }
            // End: foreach($door_options)
        }
        // End: foreach($stick_options)
        // Add each $_POST'ed Letdown Line ID to the $new_op->letdowns array
        for ($ldid = 1; $ldid <= 6; $ldid++) {
            if ($_POST['letdown_' . $ldid . '_id'] != "") {
                $op->add_letdown($_POST['letdown_' . $ldid . '_id']);
            }
        }
        $op->save();
        // Commit this entire OPERATION to the database
        $success_message = "All rappel information was successfully added to the database!";
        return $success_message;
    } catch (Exception $e) {
        //throw new Exception($e->getMessage()); // Re-Throw any exceptions to the calling function
        if ($op->get('id') != NULL) {
            $op_id = $op->get('id');
        } else {
            $op = false;
        }
        delete_partial_entry($op_id);
        // Cancel the transaction - delete partial entries
        throw new Exception($e->getMessage());
        return 0;
    }
}