"); msgWindow.document.write("
Results for " + title +"

"); } /************************************************ * Perform the final operations needed to create * a secondary window to display results. ************************************************/ function endResultsWindow() { // Create the OK button and the closing HTML tags. msgWindow.document.write("
"); msgWindow.document.write(""); msgWindow.document.close(); msgWindow.focus(); } function closeResultsWindow(){ if (msgWindow!=null) msgWindow.close(); msgWindow=null; } /******************************************************************** * The following functions do setup/housekeeping * for the Response-checking functions. ********************************************************************/ function AnswerElement(questionID, response, correct, value, answer,hint,good,sorry) { this.questionID = questionID; this.response = response.toUpperCase(); this.correct = correct.toUpperCase(); this.value = value; this.answer = answer; this.hint = hint; this.good = good; this.sorry = sorry; return this; } function AnswerBlock(n) { this.length = n; for (var i = 1; i <=n; i++) { this[i] = 0; } return this } function AnswerDump(ab, n) { var output = "Dump\n"; for (var i = 1; i <=n; i++) { output += ab[i].questionID + "=" + ab[i].response + " correct=" + ab[i].correct + "\n"; } alert(output); } function convertBoolean(value) { var result = "" + value; // alert("Result: "+result); return result; } // Look throught the select list and find the selected value. When found // set the answer's response to TRUE. This only works because we have a // fake value as the first item in the options list. Notice that we are // in fact skipping that value since option lists normally start getting // indexed at zero. If the person picks that value, it will be as if no // has been picked. function selectPick(answers,options){ for (var i = 1; i ") } else { msgWindow.document.write(formatted_id + unescape(good) + "
") } } function outputBad(id,value,hint,sorry,chances,attempts,answer) { // Write the incorrect answer in red. // Increment the 'missed' counter, and set a flag. var formatted_id = ""; if (id != "") formatted_id = id + ". "; if (attempts<=chances){ if (sorry == ""){ if (hint==""){ msgWindow.document.write(formatted_id + "Answer for "+unescape(value)+" is incorrect.
"); } else { msgWindow.document.write(formatted_id + "Answer for "+unescape(value)+" is incorrect. "+unescape(hint)+"
"); } } else { if (hint==""){ msgWindow.document.write(formatted_id + ""+unescape(sorry)+"
"); } else { msgWindow.document.write(formatted_id + ""+unescape(sorry)+" "+unescape(hint)+"
"); } } } else { // The response is incorrect and the student has run out of chances. // Write the incorrect answer in red, followed by the correct answer in parentheses. // Increment the 'missed' counter, and set a flag. msgWindow.document.write(formatted_id + "" + "Too many attempts, the correct answer is " + unescape(answer) + "
"); } } function outputHint(hint) { msgWindow.document.write("
"+unescape(hint)+"
"); } /******************************************************************** * Finally, the responses are evaluated by the remaining * functions. This code works closely with the generated * code from the course compiler so be careful when changing it. ********************************************************************/ function checkBoolean(width,height,answers,choices,chances,title,attempts) { // Create the Results window and start writing to it. var found = 0; beginResultsWindow(width,height,title); // Walk the array, looking for the selected item for (var i = 1; i <= choices; i++) { if (answers[i].response == "TRUE") { // We've got the TRUE response, lets see if it is right. Remember that // that the correct should be TRUE since this indicates if it // should have been checked. if (answers[i].response == answers[i].correct){ outputGood("", answers[i].value,answers[i].good); } else { outputBad("", answers[i].value,answers[i].hint,answers[i].sorry,chances,attempts,answers[i].answer); } found = 1; break; } } if (found == 0){ msgWindow.document.write("You must select an answer.
"); } // Write the final HTML to the Results window. endResultsWindow(); return false; } function checkSelect(width,height,answers,choices,chances,title,attempts) { // Create the Results window and start writing to it. var found = 0; beginResultsWindow(width,height,title); // Walk the array, looking for the selected item for (var i = 1; i <= choices; i++) { if (answers[i].response == "TRUE") { // We've got the TRUE response, lets see if it is right. Remember that // that the correct should be TRUE since this indicates if it // should have been checked. var c = parseInt(answers[i].answer,10); if (answers[i].response == answers[i].correct){ outputGood("", answers[i].value,answers[i].good); } else { outputBad("", answers[i].value,answers[i].hint,answers[i].sorry,chances,attempts,answers[c].value); } found = 1; break; } } if (found == 0){ msgWindow.document.write("You must select an answer.
"); } // Write the final HTML to the Results window. endResultsWindow(); return false; } function checkFill(width,height,response,correct,chances,hint,good,sorry,title,attempts) { beginResultsWindow(width,height,title); if ( response.toLowerCase() == correct.toLowerCase() ) { // The response is correct. Confirm it for the student. outputGood("",correct,good); } else { outputBad("",response,hint,sorry,chances,attempts,correct); } endResultsWindow(); return false; } function checkEssay(width,height,response,correct,chances,hint,good,sorry,title,attempts) { beginResultsWindow(width,height,title); msgWindow.document.write("The essay should cover the following topics:
"); outputHint(hint); msgWindow.document.write("
Please make sure your essay contains them."); endResultsWindow(); return false; } function checkMultiboolean(width,height,answers,choices,chances,title,attempts) { var info = ""; // Create the Results window and start writing to it. beginResultsWindow(width,height,title); // Walk the array, looking for the selected item for (var i = 1; i <= choices; i++) { if (answers[i].response == answers[i].correct) { if (answers[i].correct == "FALSE") info = " not selected"; else info = " selected"; outputGood(answers[i].questionID, answers[i].value+info,answers[i].good); } else { outputBad(answers[i].questionID, answers[i].value,answers[i].hint,answers[i].sorry,chances,attempts,answers[i].answer); } } // Write the final HTML to the Results window. endResultsWindow(); return false; } function checkMatch(width,height,answers,answer_count,chances,title,attempts) { // Create the Results window and start writing to it. beginResultsWindow(width,height,title); // Walk the array, checking each answer. for (var i = 1; i <= answer_count; i++) { if (answers[i].response == answers[i].correct) { outputGood(answers[i].questionID, answers[i].value,answers[i].good); } else { outputBad(answers[i].questionID, answers[i].value,answers[i].hint,answers[i].sorry,chances,attempts,answers[i].answer); } } // Write the final HTML to the Results window. endResultsWindow(); return false; } function checkOrder(width,height,answers,answer_count,chances,title,attempts) { // Create the Results window and start writing to it. beginResultsWindow(width,height,title); // Walk the array, checking each answer. for (var i = 1; i <= answer_count; i++) { if (answers[i].response == answers[i].correct) { outputGood(answers[i].questionID, answers[i].value,answers[i].good); } else { outputBad(answers[i].questionID, answers[i].value,answers[i].hint,answers[i].sorry,chances,attempts,answers[i].answer); } } // Write the final HTML to the Results window. endResultsWindow(); return false; } function checkAgain(width,height){ beginResultsWindow(width,height,"Try Again"); msgWindow.document.write("Please try again, the part you click isn't part of the question"); endResultWindow(); } function Debug(s,f){ var count= 0; var rest = s+ "\n"; for (var i = 0; i< f.elements.length; i++) { var e = f.elements[i]; rest += ""+count+". "; if (e.type != null){ // IE 3 does not define type rest += e.type; rest += ": "; } rest += e.name; rest += "="; rest += e.value; if (e.checked != null){ // This would indicate a "radio" or a "checkbox" if (e.checked){ rest += " (checked)"; } } else if (e.options != null ) { // This would indicate a "select" or a "multi-select" if (e.options.length != null) { // Extra test for length. Some browsers still don't work rest += "("; if (e.options[0].selected) rest += "["+e.options[0].text+"]"; else rest += e.options[0].text; for (var j=1; j
  1. MULTIPLE CHOICE

    Which is the essential function of the Emergency Manager during an emergency?
    A.    To ask a neighboring county to provide additional EMT's and vehicles.
    B.    To call on the county sheriff to provide officers to augment the local police force.
    C.    To provide a meeting place for the ARES unit in the Emergency Operations Center.
    D.    To manage resources during an emergency.

     
  2. MULTIPLE CHOICE

    Which of the following does an agency manager NOT need to know about an emcomm group?
    A.    The name of the leader of the group.
    B.    The limitations of the group.
    C.    The capabilities of the group.
    D.    The ambitions of the group.

     
  3. MULTIPLE CHOICE

    Which is the best way to deal with competition between emcomm groups?
    A.    Engage in cut throat competition.
    B.    Handle differences by letting egos and personalities predominate.
    C.    Coordinate the missions of the two groups.
    D.    Break off and set up another amateur group.

     
  4. MULTIPLE CHOICE

    Which is the purpose of the national-level memoranda of understanding?
    A.    Provide a detailed local operational plan for ARES groups serving a particular agency.
    B.    Encourage mutual recognition, cooperation, and coordination with the subject agency.
    C.    Obligate a local ARES unit so that it must serve a particular agency, and meet all of its needs.
    D.    Ensure the proper operation of the National Traffic System.

     
  5. MULTIPLE CHOICE

    Before a local ARES group commits itself to the service of a particular public safety agency, which should it have?
    A.    A general outline of what Amateur Radio can do for it.
    B.    A good sense of the internal politics of the agency.
    C.    An internal ARES plan that is not to be shared with outside agencies.
    D.    A detailed MOU developed with agency managers that sets forth precisely what each organization can expect during an operation.