"); 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

    As part of an EMCOMM group handling message traffic in an emergency, you are asked to forward a message that contains typographical errors. Which of the following is your best course of action?
    A.    Delay sending the message.
    B.    Forward the message exactly as received.
    C.    Return the message to the originating station.
    D.    On your own, correct the error in the message and forward it.

     
  2. MULTIPLE CHOICE

    As part of an EMCOMM net handling message traffic in an emergency, you are asked to forward a message in a non-standard format. Which of the following is your best course of action?
    A.    Delay sending the message until you have conferred with the originator.
    B.    Return the message to the originator.
    C.    On your own, rewrite the message in proper format and forward it.
    D.    Forward the message exactly as received.

     
  3. MULTIPLE CHOICE

    You have been asked to send an ARRL Radiogram dealing with birthday greetings. Which of the following is the correct format for the message?
    A.    "ARRL 46"
    B.    "ARL 46"
    C.    "ARL FORTY SIX"
    D.    "ARRL FORTY SIX"

     
  4. MULTIPLE CHOICE

    When delivering an ARRL numbered radiogram, which should be done?
    A.    Deliver the message exactly as received.
    B.    Deliver the message exactly as received but add your own written explanation.
    C.    Decode the message into plain language before delivery.
    D.    Deliver the message exactly as received but add your own verbal explanation.

     
  5. MULTIPLE CHOICE

    During an emergency, service messages should only be sent for which of the following categories of message?
    A.    Emergency, Priority, Welfare and Routine
    B.    Emergency, Priority and Welfare
    C.    Priority and Welfare
    D.    Emergency and Priority