function setArrays(form) {
  alwaysShowMsgs = false;

  fields = new Array();

  fields[0]      = new FormField();
  fields[0].elmt = form.cert;
  fields[0].name = "Specific Portrait Type";
  fields[0].func = checkPets;
  fields[0].mesg = "# Pets: Please enter the number of pets for the gift certificate.";

  fields[1]      = new FormField();
  fields[1].elmt = form.cert;
  fields[1].name = "Specific Monetary Amount";
  fields[1].func = checkAmount;
  fields[1].mesg = "Please specify the amount for the gift certificate.";

  fields[2]      = new FormField();
  fields[2].elmt = form.yName;
  fields[2].name = "Your Name";
  fields[2].func = null;
  fields[2].mesg = null;

  fields[3]      = new FormField();
  fields[3].elmt = form.email;
  fields[3].name = "Your E-mail";
  fields[3].func = isEmail;
  fields[3].mesg = "Please provide a valid email address.";

  fields[4]      = new FormField();
  fields[4].elmt = form.rName;
  fields[4].name = "Recipient's Name";
  fields[4].func = null;
  fields[4].mesg = null;

  fields[5]      = new FormField();
  fields[5].elmt = form.delivery;
  fields[5].name = "Delivery Address";
  fields[5].func = checkDelivery;
  fields[5].mesg = "Please specify address, city, state, and zip\n"
		 + "for the delivery of this gift certificate.";

  fields[6]      = new FormField();
  fields[6].elmt = form.state;
  fields[6].name = "State";
  fields[6].func = checkState;
  fields[6].mesg = "Please provide a valid two-letter state abbreviation.";
  fields[6].empty_ok = true;

  fields[7]      = new FormField();
  fields[7].elmt = form.zip;
  fields[7].name = "Zip";
  fields[7].func = checkZip;
  fields[7].mesg = "Please provide a valid zip code.";
  fields[7].empty_ok = true;

  fields[8]      = new FormField();
  fields[8].elmt = form.pets;
  fields[8].name = "Type of pet(s)";
  fields[8].func = null;
  fields[8].mesg = null;

  fields[9]      = new FormField();
  fields[9].elmt = form.location;
  fields[9].name = "Delivery location for the final portrait";
  fields[9].func = null;
  fields[9].mesg = null;

  fields[10]      = new FormField();
  fields[10].elmt = form.date;
  fields[10].name = "Date receipt is required by";
  fields[10].func = checkDate;
  fields[10].mesg = "Please provide a date in the mm/dd/yyyy format.";
  fields[10].empty_ok = true;

  return true;
}

function checkPets(str) {
  var t = document.certForm.what_type;
  var s = document.certForm.what_size;
  var pets = document.certForm.what_pets.value;
  var type = t.options[t.selectedIndex].value;
  var size = s.options[s.selectedIndex].value;
  var rval = !(str == 'type' && (isEmpty(pets) || isWhitespace(pets)));

  if (rval) {
    if (size == '8" x 10"' && (type == 'Full Body' || pets != 1)) {
      fields[0].mesg = 'The 8" x 10" size is only big enough for one pet, Head Only.';
      rval = false;
    }
  }

  return rval;
}

function checkAmount(str) {
  var amt = document.certForm.what_amount.value;
  return !(str == 'amount' && (isEmpty(amt) || isWhitespace(amt)));
}

function checkDelivery(str) {
  var form = document.certForm;
  return !(str == 'postal' && (
	    isEmpty(form.address.value) || isWhitespace(form.address.value)
	 || isEmpty(form.city.value)    || isWhitespace(form.city.value)
	 || isEmpty(form.state.value)   || isWhitespace(form.state.value)
	 || isEmpty(form.zip.value)     || isWhitespace(form.zip.value) ));
}

function checkState(str) {
  var rval = true;
  if (!(isEmpty(str) || isWhitespace(str))) rval = (str.length == 2);
  return rval;
}

function checkZip(str) {
  var rval = true;
  if (!(isEmpty(str) || isWhitespace(str))) rval = isZIPCode(str);
  return rval;
}

function checkDate(str) {
  var rval = true;
  if (!(isEmpty(str) || isWhitespace(str))) {
    var arr = str.split('/');
    rval = isDate(arr[2], arr[0], arr[1]);
  }
  return rval;
}

function gotoBox(box) {
  eval('document.certForm.'+box+'.focus()');
}

function checkFromBox(name, val) {
  var elmt = eval('document.certForm.'+name);

  for (var i = 0; i < elmt.length; i++) {
    if (elmt[i].value == val) {
      elmt[i].checked = true;
      break;
    }
  }
}

