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

    The preamble to an ARRL Radiogram message contains a block called "Precedence". Which of the following represents the correct precedence for an EMERGENCY message?
    A.    "URGENT".
    B.    "U".
    C.    "EMERGENCY".
    D.    "E".

     
  2. MULTIPLE CHOICE

    The preamble to an ARRL Radiogram message contains a block called "Handling Instructions." What is the meaning of the handling instruction "HXE"?
    A.    Delivering station to get and send reply from addressee.
    B.    Report date and time of delivery to originating station.
    C.    Cancel message if not delivered within (X) hours of filing time.
    D.    Collect telephone delivery authorized.

     
  3. MULTIPLE CHOICE

    ARRL Radiogram messages contains a block called "Time Filed". Which of the following is true of entries in that block?
    A.    This field is always completed.
    B.    Time entries are always Universal Coordinated Time.
    C.    During emergencies "local time" is used.
    D.    During emergencies "local time" along with the local date is used.

     
  4. MULTIPLE CHOICE

    ARRL Radiogram messages contains a block called "The Check." Which of the following is true of entries in that block?
    A.    The check contains a count of the words in the entire message.
    B.    The check contains a count of the words in the preamble and the text of the message.
    C.    The check contains a count of the words in the preamble, address and text of the message.
    D.    The check contains a count of the words in the text of the message.

     
  5. MULTIPLE CHOICE

    Which of the following statements is true of punctuation within an ARRL Radiogram?
    A.    Punctuation is always helpful; it should be used whenever possible.
    B.    Punctuation is rarely helpful; it should never be used.
    C.    Punctuation should be used only when it is essential to the meaning of the message.
    D.    The comma and apostrophe are the most common punctuation signs used in NTS messages.