"); 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 of the following does the number of ARES staff members required to provide effective leadership most depend on?
    A.    The number and size of cities as well as the number of served agencies in the area.
    B.    The managerial expertise of the Section officials.
    C.    The number of Amateur Radio operators available.
    D.    The legal requirements for non-profit, volunteer organizations.

     
  2. MULTIPLE CHOICE

    Which of the following describes the ideal "span of control"?
    A.    One supervisor with five to seven subordinates.
    B.    One supervisor with seven to ten subordinates.
    C.    One supervisor with ten to fifteen subordinates.
    D.    One supervisor and three to five subordinates.

     
  3. MULTIPLE CHOICE

    During a disaster, which of the following positions is responsible for providing information on the Amateur Radio contribution to the relief effort?
    A.    The Section Manager.
    B.    The Public Information Coordinator.
    C.    The Public Information Officer.
    D.    The Official Bulletin Station.

     
  4. MULTIPLE CHOICE

    For which of the following Section staff and support positions is an additional test and certification required?
    A.    AEC.
    B.    STM.
    C.    OBS.
    D.    OO.

     
  5. MULTIPLE CHOICE

    During disasters, which is the primary function of ARRL Headquarters?
    A.    Provide administrative support to the ARRL Field Organization.
    B.    Provide administrative support to RACES, SKYWARN and Military Affiliate Radio Systems (MARS).
    C.    Publish materials and collect dues.
    D.    Serve as an information clearinghouse.