function validateReaderForm(theForm)
  {

// check that the play is named or numbered
  var sPlay =theForm.Play.value;
  if (sPlay == "")
    {
    alert("Please enter the Play's title or number.");
    theForm.Play.focus();
    return (false);
    }

// check the reader number is a number
  var rNumber = parseInt(theForm.ReaderNumber.value,10);
  var sNumber1 = theForm.ReaderNumber.value;
//  alert("reader Number is: ",rNumber);
  if (isNaN(rNumber))
    {
	rNumber = -1;
	}
  else
    {
	var sNumber2 = rNumber.toString(10);
	if (sNumber1.length != sNumber2.length)
      {
	  rNumber = -1;
	  }
	}
  if (rNumber == "" || rNumber < 1 || rNumber > 999)
    {
    alert("Please enter a valid Reader Number.");
    theForm.ReaderNumber.value ="";
    theForm.ReaderNumber.focus();
    return (false);
    }

// make sure a recommendation is checked
  var radioSelected = false;
  for (i = 0;  i < theForm.Recommend.length;  i++)
    {
    if (theForm.Recommend[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the Overall Recommendation options.");
    return (false);
    }

// make sure a selection is made for "Dialogue Appropriate"
  var radioSelected = false;
  for (i = 0;  i < theForm.DialogueAppropriate.length;  i++)
    {
    if (theForm.DialogueAppropriate[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Dialogue Appropriate\" options.");
    return (false);
    }

// make sure a selection is made for "Over/Under written"
  var radioSelected = false;
  for (i = 0;  i < theForm.Dialogue_Over_Under_Written.length;  i++)
    {
    if (theForm.Dialogue_Over_Under_Written[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Dialogue Over/Under Written\" options.");
    return (false);
    }

// make sure a selection is made for "Interesting Characters"
  var radioSelected = false;
    for (i = 0;  i < theForm.Interesting_Characters.length;  i++)
    {
    if (theForm.Interesting_Characters[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Interesting Characters\" options.");
    return (false);
    }

// make sure a selection is made for "Motivations Clear"
  var radioSelected = false;
  for (i = 0;  i < theForm.Motivations_Clear.length;  i++)
    {
    if (theForm.Motivations_Clear[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Motivations Clear\" options.");
    return (false);
    }

// make sure a selection is made for "Developed Characters"
  var radioSelected = false;
  for (i = 0;  i < theForm.Characters_Developed.length;  i++)
    {
    if (theForm.Characters_Developed[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Characters Developed\" options.");
    return (false);
    }

// make sure a selection is made for "Plot Developed"
  var radioSelected = false;
  for (i = 0;  i < theForm.Plot_Developed.length;  i++)
    {
    if (theForm.Plot_Developed[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Plot Developed\" options.");
    return (false);
    }

// make sure a selection is made for "Lgical Plot_Developed"
  var radioSelected = false;
  for (i = 0;  i < theForm.Plot_Logical.length;  i++)
    {
    if (theForm.Plot_Logical[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Plot Logical\" options.");
    return (false);
    }

// make sure a selection is made for "Moving Plot Forward"
  var radioSelected = false;
  for (i = 0;  i < theForm.Plot_Move.length;  i++)
    {
    if (theForm.Plot_Move[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Plot_Move\" options.");
    return (false);
    }

// make sure a selection is made for "Ending Appropriate"
  var radioSelected = false;
  for (i = 0;  i < theForm.Ending_Appropriate.length;  i++)
    {
    if (theForm.Ending_Appropriate[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Ending_Appropriate\" options.");
    return (false);
    }

// make sure a selection is made for "Hold Interest"
  var radioSelected = false;
  for (i = 0;  i < theForm.Hold_Interest.length;  i++)
    {
    if (theForm.Hold_Interest[i].checked)
        radioSelected = true;
    }
  if (!radioSelected)
    {
    alert("Please select one of the \"Hold_Interest\" options.");
    return (false);
    }

// complete hidden fields
  theForm.recipient.value="lib@baltplayfest.com";
  theForm.subject.value=sPlay +" -- Reader " +sNumber1; +" evaluation."
  theForm.sender.value="BPF Play Evaluator";
  return (true);
  }
