var cityset = ["p7_Castlegar",
             "p7_Cranbrook",
             "p7_Kamloops",
             "p7_Nanaimo",
             "p7_Richmond",
             "p7_Victoria",
             "p7_Courtenay",
             "p7_FortStJohn",
             "p7_Kelowna",
             "p7_PrinceGeorge",
             "p7_Terrace",
             "p7_WilliamsLake"];

var oldDecisionNoti = false;

function validate(frm, srcElem, silent) {
  //frm.elements["WorkerLastName"].readOnly = true;
  //frm.elements["WorkerLastName2"].readOnly = true; 
  //frm.elements["WorkSafeBCClaim"].readOnly = true;
  //frm.elements["WorkSafeBCClaim2"].readOnly = true;


  var inp;
  if (silent == null) silent = false;
  if (srcElem == frm.elements["btnPrint"]) return true; // allow printing with incomplete form

  mutualExcludeCheckboxes(frm, srcElem);

  inp = frm.elements["p1_WorkerLastName"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Worker's Last Name.");
    oldDecisionNoti = false;
    goback(inp, srcElem);
    return false;
}
//document.getElementById("WorkerLastName").innerHTML = inp.value;
  //frm.elements["WorkerLastName"].value = inp.value;
  //frm.elements["WorkerLastName2"].value = inp.value;

  inp = frm.elements["p1_WorkerFirstName"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Worker's First Name.");
    oldDecisionNoti = false;
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p1_WorkerMr"];
  var wrkMr = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p1_WorkerMs"].checked = false;
  }
  if (inp == srcElem) return true;

  inp = frm.elements["p1_WorkerMs"];
  var wrkMs = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p1_WorkerMr"].checked = false;
  }
  if (inp == srcElem) {
    return true;

  }

  if ((!wrkMr && !wrkMs) || (wrkMr && wrkMs)) {
    alert("Please select Mr or Ms for the worker.");
    goback(frm.elements["p1_WorkerMr"]);
    return false;
  }

  inp = frm.elements["p1_WorkSafeBCClaim"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the WorkSafeBC Claim Number(s).");
    goback(inp, srcElem);
    return false;
  }


  var cns = inp.value.split(",");
  for (var i = 0; i < cns.length; i++) {
    if (!re_wcb.test(trim(cns[i]))) {
      if (!silent) alert("The format of the WorkSafeBC Claim Number(s) is incorrect.\n\nThe correct format is two letters followed by 8 numbers (example: AB12345678), 8 numbers (example: 12345678), or 9 numbers (example: 123456789)");
      goback(inp, srcElem);
      return false;
    }
  }
  //document.getElementById("WorkSafeBCClaim").innerHTML = inp.value;
  //frm.elements["WorkSafeBCClaim"].value = inp.value;
  //frm.elements["WorkSafeBCClaim2"].value = inp.value;
  
 
  inp = frm.elements["p1_CustomerCare"];
  if (inp == srcElem) return true;

  if (!(isExample(inp) || re_empty.test(inp.value)) && !re_customercare.test(inp.value)) {
    if (!silent) alert("The format of the WorkSafeBC Customer Care # is incorrect.\n\nThe correct format is an 11-digit number starting with 9 (example:901234567890)");
    goback(inp, srcElem);
    return false;
  }
  
  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  
  //date of review division decision
  inp = frm.elements["p3_DateOfReviewDivisionDecision"];
  if (inp == srcElem) return true;

  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Date of WorkSafeBC Decision.");
    oldDecisionNoti = false;
    goback(inp, srcElem);
    return false;
  }

  //automatically add seporators for dates entered without - DW Jan 11, 2010
  if (inp.value.length == 8) {
    inp.value = inp.value.substring(0, 4) + "/" + inp.value.substring(4, 6) + "/" + inp.value.substring(6);
  }

  var cns = inp.value.split(",");
  for (var i = 0; i < cns.length; i++) {
    if (!re_date.test(trim(cns[i]))) {
      if (!silent) alert("The format of the Date of WorkSafeBC Decision is incorrect.\n\nThe correct format is: yyyy/mm/dd.");
      oldDecisionNoti = false;
      goback(inp, srcElem);
      return false;
    }
  }

  var seperator = inp.value.substring(4, 5); // be flexable with the type of seperator -DW
  var rds = inp.value.split(seperator);
  if (null == rds || rds.length != 3) {
    if (!silent) alert("The format of the Date of WorkSafeBC Decision is incorrect.\n\nThe correct format is: yyyy/mm/dd.");
    oldDecisionNoti = false;
    goback(inp, srcElem);
    return false;
  }
  
  var ry = parseInt(stripLeadingZeroes(rds[0]));
  var rm = parseInt(stripLeadingZeroes(rds[1]));
  var rd = parseInt(stripLeadingZeroes(rds[2]));

  var leapYear = ((ry % 4) == 0 && ((ry % 100) != 0 || (ry % 400) == 0));
  if (leapYear && rm == 2) {
    if (rd > 29) {
      if (!silent) alert("The year, month, and day entered for Date of WorkSafeBC Decision do not correspond to a valid date.");
      oldDecisionNoti = false;
      goback(inp, srcElem);
      return false;
    }
  } else {
    if (rd > daysIn[rm]) {
      if (!silent) alert("The year, month, and day entered for Date of WorkSafeBC Decision do not correspond to a valid date.");
      oldDecisionNoti = false;
      goback(inp, srcElem);
      return false;
    }
  }

  var rdate = new Date();
  rdate.setFullYear(ry);
  rdate.setMonth(rm - 1);
  rdate.setDate(rd);
  rdate.setHours(0);
  rdate.setMinutes(0);
  rdate.setSeconds(0);
  rdate.setMilliseconds(0);

  var today = new Date();
  today.setHours(0);
  today.setMinutes(0);
  today.setSeconds(0);
  today.setMilliseconds(0);

  if (rdate > today) {
    if (!silent) alert("The date entered for Date of WorkSafeBC Decision is in the future.");
    oldDecisionNoti = false;
    goback(inp, srcElem);
    return false;
  }


  var expDays = 98;
  var statDays = 90;
  rdate.setTime(rdate.getTime() + (expDays * 24 * 60 * 60 * 1000));
  if (rdate < today) {
    if (!oldDecisionNoti) {
      oldDecisionNoti = true;
      if (!silent) alert("Your appeal is over " + statDays + " days old; after completing this form, you will also need to fill out \"EXTENSION OF TIME TO APPEAL APPLICATION: WorkSafeBC Decision\". This Appeal Application will be provided upon printing this form.");
    }
  }


  inp = frm.elements["p3_CopyIsAttached"];
  if (inp == srcElem) return true; ;

  //END SECTION 1

  inp = frm.elements["p2_Worker"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Dependant"].checked = false;
    frm.elements["p2_Employer"].checked = false;
    frm.elements["p2_EmployerFirmName"].value = "";
    frm.elements["p2_EmployerFirmName"].disabled = true;
    frm.elements["p2_EmployerContactJobTitle"].value = "";
    frm.elements["p2_EmployerContactJobTitle"].disabled = true;

    frm.elements["p2_FirstName"].value = frm.elements["p1_WorkerFirstName"].value
    frm.elements["p2_LastName"].value = frm.elements["p1_WorkerLastName"].value
    if (frm.elements["p1_WorkerMs"].checked)
      frm.elements["p2_AppellantMs"].checked = true;
    if (frm.elements["p1_WorkerMr"].checked)
      frm.elements["p2_AppellantMr"].checked = true;
  }
  var worker = inp.checked;
  if (inp == srcElem) return true;

  inp = frm.elements["p2_Dependant"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Worker"].checked = false;
    frm.elements["p2_Employer"].checked = false;
    //frm.elements["p2_WorkerBCCareCard"].value="";
    frm.elements["p2_EmployerFirmName"].value = "";
    frm.elements["p2_EmployerFirmName"].disabled = true;
    frm.elements["p2_EmployerContactJobTitle"].value = "";
    frm.elements["p2_EmployerContactJobTitle"].disabled = true;

    frm.elements["p2_FirstName"].value = "";
    frm.elements["p2_LastName"].value = "";
    frm.elements["p2_AppellantMs"].checked = false;
    frm.elements["p2_AppellantMr"].checked = false;
  }
  var dependant = inp.checked;
  if (inp == srcElem) return true;

  inp = frm.elements["p2_Employer"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Dependant"].checked = false;
    frm.elements["p2_Worker"].checked = false;
    frm.elements["p2_EmployerFirmName"].disabled = false;
    frm.elements["p2_EmployerContactJobTitle"].disabled = false;

    frm.elements["p2_FirstName"].value = "";
    frm.elements["p2_LastName"].value = "";
    frm.elements["p2_AppellantMs"].checked = false;
    frm.elements["p2_AppellantMr"].checked = false;
  }
  var employer = inp.checked;
  if (inp == srcElem) return true;

  if (!worker && !dependant && !employer) {
    if (srcElem == frm.elements["p2_WorkerBCCareCard"]) return true;
    if (srcElem == frm.elements["p2_EmployerFirmName"]) return true;
    if (srcElem == frm.elements["p2_EmployerContactJobTitle"]) return true;
  }

  if (!worker && !dependant && !employer || (worker && dependant || dependant && employer || worker && employer)) {
    if (!silent) alert("Please indicate whether you are the worker, a dependant of a deceased worker, or the employer");
    goback(frm.elements["p2_Worker"], srcElem);
    return false;
  }

  inp = frm.elements["p2_WorkerBCCareCard"];
  if (inp == srcElem) return true;

  /*
  if(worker&&(isExample(inp)||re_empty.test(inp.value))) {
  if(!silent) alert("Please enter the Worker's BC Care Card #.");
  goback(inp);
  return false;
  }
  */

  if ((worker && !re_carecard.test(inp.value)) && !re_empty.test(inp.value)) {
    if (!silent) alert("The format of the BC Care Card is incorrect.\n\nThe correct format is 1234 567 890.");
    goback(inp, srcElem);
    return false;
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }

  inp = frm.elements["p2_EmployerFirmName"];
  if (inp == srcElem) return true;
  /*
  if(employer&&(isExample(inp)||re_empty.test(inp.value))) {
  if(!silent) alert("Please enter the Employer Firm Name.");
  goback(inp);
  return false;
  }
  */
  inp = frm.elements["p2_EmployerContactJobTitle"];
  if (inp == srcElem) return true;
  /*
  if(employer&&(isExample(inp)||re_empty.test(inp.value))) {
  if(!silent) alert("Please enter the Employer Contact Job Title.");
  goback(inp);
  return false;
  }
  */
  if (worker) {
    frm.elements["p2_EmployerFirmName"].value = "";
  } else if (dependant) {
    frm.elements["p2_EmployerFirmName"].value = "";
    frm.elements["p2_WorkerBCCareCard"].value = "";
  } else if (employer) {
    frm.elements["p2_WorkerBCCareCard"].value = "";
  }

  inp = frm.elements["p2_LastName"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Appellant's Last Name.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p2_FirstName"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Appellant's First Name.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p2_AppellantMr"];
  var appMr = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_AppellantMs"].checked = false;
  }
  if (inp == srcElem) return true;

  inp = frm.elements["p2_AppellantMs"];
  var appMs = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_AppellantMr"].checked = false;
  }
  if (inp == srcElem) return true;


  if (!appMr && !appMs) {
    if (!silent) alert("Please check off Mr or Ms for the Appellant.");
    goback(frm.elements["p2_AppellantMr"]);
    return false;
  }

  inp = frm.elements["p2_MailingAddress"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Mailing Address.");
    goback(inp, srcElem);
    return false;
  }
  inp = frm.elements["p2_City"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the City.");
    goback(inp, srcElem);
    return false;
  }
  inp = frm.elements["p2_Province"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Province.");
    goback(inp, srcElem);
    return false;
  }
  inp = frm.elements["p2_PostalCode"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Postal Code.");
    goback(inp, srcElem);
    return false;
  }

  //add space to postal code (i.e. make "V4F5T4" look like "V4F 5T4"
  var re_postal_needs_space = /^[a-zA-Z][\d][a-zA-Z][\d][a-zA-Z][\d]$/i; //a postal code with no space
  if (re_postal_needs_space.test(trim(inp.value))) {
    inp.value = trim(inp.value);
    inp.value = inp.value.substring(0, 3) + " " + inp.value.substring(3);
  }

  inp = frm.elements["p2_DaytimeAreaCode"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Daytime Phone.");
    goback(inp, srcElem);
    return false;
  }
  if (!re_areacode.test(inp.value)) {
    if (!silent) alert("The format of the Daytime Phone Area Code is incorrect.\n\nThe correct format is: 250.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p2_DaytimePhone"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Daytime Phone.");
    goback(inp, srcElem);
    return false;
  }
  if (!re_phone.test(inp.value)) {
    if (!silent) alert("The format of the Daytime Phone is incorrect.\n\nThe correct format is: 123-4567.");
    goback(inp, srcElem);
    return false;
  }
  //Add dash to number if necessary
  if (inp.value.indexOf(" ") == 3) inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(4); ;
  if (inp.value.indexOf("-") < 0 && inp.value.length == 7) {
    inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(3);
  }


  inp = frm.elements["p2_OtherAreaCode"];
  if (inp == srcElem) return true;
  if (!(isExample(inp) || re_empty.test(inp.value)) && !re_areacode.test(inp.value)) {
    if (!silent) alert("The format of the Other Phone Area Code is incorrect.\n\nThe correct format is: 250.");
    goback(inp, srcElem);
    return false;
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  
  inp = frm.elements["p2_OtherPhone"];
  if (inp == srcElem) return true;
  if (!(isExample(inp) || re_empty.test(inp.value)) && !re_phone.test(inp.value)) {
    if (!silent) alert("The format of the Other Phone is incorrect.\n\nThe correct format is: 123-4567.");
    goback(inp, srcElem);
    return false;
  }
  //Add dash to number if necessary
  if (inp.value.indexOf(" ") == 3) inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(4); ;
  if (inp.value.indexOf("-") < 0 && inp.value.length == 7) {
    inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(3);
  }
  
  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }

  inp = frm.elements["p2_FaxAreaCode"];
  if (inp == srcElem) return true;
  if (!(isExample(inp) || re_empty.test(inp.value)) && !re_areacode.test(inp.value)) {
    if (!silent) alert("The format of the Fax Number Area Code is incorrect.\n\nThe correct format is: 250.");
    goback(inp, srcElem);
    return false;
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  
  inp = frm.elements["p2_Fax"];
  if (inp == srcElem) return true;
  if (!(isExample(inp) || re_empty.test(inp.value)) && !re_phone.test(inp.value)) {
    if (!silent) alert("The format of the Fax Number is incorrect.\n\nThe correct format is: 123-4567.");
    goback(inp, srcElem);
    return false;
  }
  //Add dash to number if necessary
  if (inp.value.indexOf(" ") == 3) inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(4); ;
  if (inp.value.indexOf("-") < 0 && inp.value.length == 7) {
    inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(3);
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  
  inp = frm.elements["p4_WhyIsDecisionIncorrect"];
  if (inp == srcElem) return true;

  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter why the decision is incorrect.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p5_RequestOutcome"];
  if (inp == srcElem) return true;

  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the outcome you request from this appeal.");
    goback(inp, srcElem);
    return false;
  }

/*
  inp = frm.elements["WorkerLastName"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Worker's Last Name.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["WorkSafeBCClaim"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the WorkSafeBC Claim Number(s).");
    goback(inp, srcElem);
    return false;
  }
  var cns = inp.value.split(",");
  for (var i = 0; i < cns.length; i++) {
    if (!re_wcb.test(trim(cns[i]))) {
      if (!silent) alert("The format of the WorkSafeBC Claim Number(s) is incorrect.\n\nThe correct format is AB12345678 or 12345678 or 123456789.");
      goback(inp, srcElem);
      return false;
    }
}
  
  */

  inp = frm.elements["p6_CD"];
  var dCD = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p6_Paper"].checked = false;
  }
  if (inp == srcElem) return true;
  inp = frm.elements["p6_Paper"];
  var dPaper = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p6_CD"].checked = false;
  }
  if (inp == srcElem) return true;

  if ((!dCD && !dPaper) || (dCD && dPaper)) {
    if (!silent) alert("Please indicate if you would like your WorkSafeBC file in CD format or on paper.");
    goback(frm.elements["p6_CD"]);
    return false;
  }

  inp = frm.elements["p7_Written"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p7_Oral"].checked = false;
    frm.elements["p7_OralHearingReason"].disabled = true;
    frm.elements["p7_OralHearingReason"].value = "";
    for (var i = 0; i < cityset.length; i++) {
      frm.elements[cityset[i]].disabled = true;
      frm.elements[cityset[i]].checked = false;
    }
    frm.elements["p7_InterpreterYes"].disabled = true;
    frm.elements["p7_InterpreterYes"].checked = false;
    frm.elements["p7_InterpreterNo"].disabled = true;
    frm.elements["p7_InterpreterNo"].checked = false;
    frm.elements["p7_Language"].disabled = true;
    frm.elements["p7_Language"].value = "";
    frm.elements["p7_Dialect"].disabled = true;
    frm.elements["p7_Dialect"].value = "";
    frm.elements["p7_WitnessesYes"].disabled = true;
    frm.elements["p7_WitnessesYes"].checked = false;
    frm.elements["p7_WitnessesNo"].disabled = true;
    frm.elements["p7_WitnessesNo"].checked = false;
  }
  var written = inp.checked;
  if (inp == srcElem) return true;

  inp = frm.elements["p7_Oral"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p7_Written"].checked = false;
    frm.elements["p7_OralHearingReason"].disabled = false;
    for (var i = 0; i < cityset.length; i++) {
      frm.elements[cityset[i]].disabled = false;
    }
    frm.elements["p7_InterpreterYes"].disabled = false;
    frm.elements["p7_InterpreterNo"].disabled = false;
    frm.elements["p7_Language"].disabled = false;
    frm.elements["p7_Dialect"].disabled = false;
    frm.elements["p7_WitnessesYes"].disabled = false;
    frm.elements["p7_WitnessesNo"].disabled = false;
  }
  var oral = inp.checked;
  if (inp == srcElem) return true;

  if ((!written && !oral) || (written && oral)) {
    if (!silent) alert("Please indicate how you want your appeal to be considered.");
    goback(frm.elements["p7_Written"], srcElem);
    return false;
  }

  //oral hearing conditional logic
  inp = frm.elements["p7_OralHearingReason"];
  if (inp == srcElem) return true;
  /*
  if(oral&&(isExample(inp)||re_empty.test(inp.value))) {
  if(!silent) alert("Please enter the reason an oral hearing is required.");
  goback(inp, srcElem);
  return false;
  }*/

  //truncate(inp, 2, "Question 4, cont'd");

  var citycnt = 0;
  var docity = false;
  for (var i = 0; !docity && i < cityset.length; i++) {
    inp = frm.elements[cityset[i]];
    if (inp == srcElem) docity = true;
  }
  if (docity) {
    for (var i = 0; i < cityset.length; i++) {
      inp = frm.elements[cityset[i]];
      if (!(inp == srcElem && inp.checked)) {
        inp.checked = false;
      }
    }
  }

  for (var i = 0; i < cityset.length; i++) {
    inp = frm.elements[cityset[i]];
    if (inp == srcElem) return true;
    if (inp.checked) citycnt++;
  }
  if (oral && citycnt != 1) {
    if (!silent) alert("Please select the city you would like to have your oral hearing held in.");
    goback(frm.elements["p7_Castlegar"], srcElem);
    return false;
  }

  inp = frm.elements["p7_InterpreterNo"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p7_InterpreterYes"].checked = false;
    frm.elements["p7_Language"].disabled = true;
    frm.elements["p7_Dialect"].disabled = true;
    frm.elements["p7_Language"].value = "";
    frm.elements["p7_Dialect"].value = "";
  }
  var intNo = inp.checked;
  if (inp == srcElem) return true;

  inp = frm.elements["p7_InterpreterYes"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p7_InterpreterNo"].checked = false;
    frm.elements["p7_Language"].disabled = false;
    frm.elements["p7_Dialect"].disabled = false;
  }
  var intYes = inp.checked;
  if (inp == srcElem) return true;

  if (oral && (!intYes && !intNo || intYes && intNo)) {
    if (!silent) alert("Please indicate whether or not you requre an interpreter.");
    goback(frm.elements["p7_InterpreterNo"].checked, srcElem);
    return false;
  }

  inp = frm.elements["p7_Language"];
  if (inp == srcElem) return true;
  if (oral && intYes && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the language you speak.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p7_Dialect"];
  if (inp == srcElem) return true;

  inp = frm.elements["p7_WitnessesNo"];
  var wNo = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p7_WitnessesYes"].checked = false;
  }
  if (inp == srcElem) return true;
  inp = frm.elements["p7_WitnessesYes"];
  var wYes = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p7_WitnessesNo"].checked = false;
  }
  if (inp == srcElem) return true;

  if (oral && (!wYes && !wNo) || (wYes && wNo)) {
    if (!silent) alert("Please indicate whether or not you intend to bring witnesses to the oral hearing.");
    goback(frm.elements["p7_WitnessesNo"]);
    return false;
  }

  inp = frm.elements["p8_SelfRepYes"];
  var srYes = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_SelfRepNo"].checked = false;

    frm.elements["p8_Organization"].disabled = true;
    frm.elements["p8_Organization"].checked = false;
    frm.elements["p8_OnePerson"].disabled = true;
    frm.elements["p8_OnePerson"].checked = false;
    frm.elements["p8_OrganizationName"].disabled = true;
    frm.elements["p8_OrganizationName"].value = "";
    frm.elements["p8_Relationship"].disabled = true;
    frm.elements["p8_Relationship"].value = "";
    frm.elements["p8_LastName"].disabled = true;
    frm.elements["p8_LastName"].value = "";
    frm.elements["p8_FirstName"].disabled = true;
    frm.elements["p8_FirstName"].value = "";
    frm.elements["p8_RepMr"].disabled = true;
    frm.elements["p8_RepMr"].checked = false;
    frm.elements["p8_RepMs"].disabled = true;
    frm.elements["p8_RepMs"].checked = false;
    frm.elements["p8_MailingAddress"].disabled = true;
    frm.elements["p8_MailingAddress"].value = "";
    frm.elements["p8_City"].disabled = true;
    frm.elements["p8_City"].value = "";
    frm.elements["p8_Province"].disabled = true;
    frm.elements["p8_Province"].value = "";
    frm.elements["p8_PostalCode"].disabled = true;
    frm.elements["p8_PostalCode"].value = "";
    frm.elements["p8_DaytimeAreaCode"].disabled = true;
    frm.elements["p8_DaytimeAreaCode"].value = "";
    frm.elements["p8_DaytimePhone"].disabled = true;
    frm.elements["p8_DaytimePhone"].value = "";
    frm.elements["p8_OtherAreaCode"].disabled = true;
    frm.elements["p8_OtherAreaCode"].value = "";
    frm.elements["p8_OtherPhone"].disabled = true;
    frm.elements["p8_OtherPhone"].value = "";
    frm.elements["p8_FaxAreaCode"].disabled = true;
    frm.elements["p8_FaxAreaCode"].value = "";
    frm.elements["p8_Fax"].disabled = true;
    frm.elements["p8_Fax"].value = "";
    frm.elements["p8_AuthEnclosed"].disabled = true;
    frm.elements["p8_AuthEnclosed"].checked = false;
    frm.elements["p8_AuthOnFile"].disabled = true;
    frm.elements["p8_AuthOnFile"].checked = false;
  }
  if (inp == srcElem) return true;
  inp = frm.elements["p8_SelfRepNo"];
  var srNo = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_SelfRepYes"].checked = false;

    frm.elements["p8_Organization"].disabled = false;
    frm.elements["p8_OnePerson"].disabled = false;
    frm.elements["p8_OrganizationName"].disabled = false;
    frm.elements["p8_Relationship"].disabled = false;
    frm.elements["p8_LastName"].disabled = false;
    frm.elements["p8_FirstName"].disabled = false;
    frm.elements["p8_RepMr"].disabled = false;
    frm.elements["p8_RepMs"].disabled = false;
    frm.elements["p8_MailingAddress"].disabled = false;
    frm.elements["p8_City"].disabled = false;
    frm.elements["p8_Province"].disabled = false;
    frm.elements["p8_PostalCode"].disabled = false;
    frm.elements["p8_DaytimeAreaCode"].disabled = false;
    frm.elements["p8_DaytimePhone"].disabled = false;
    frm.elements["p8_OtherAreaCode"].disabled = false;
    frm.elements["p8_OtherPhone"].disabled = false;
    frm.elements["p8_FaxAreaCode"].disabled = false;
    frm.elements["p8_Fax"].disabled = false;
    frm.elements["p8_AuthEnclosed"].disabled = false;
    frm.elements["p8_AuthOnFile"].disabled = false;
  }
  if (inp == srcElem) return true;

  if ((!srYes && !srNo) || (srYes && srNo)) {
    if (!silent) alert("Please indicate whether or not you intend to represent yourself.");
    goback(frm.elements["p8_SelfRepYes"]);
    return false;
  }

  inp = frm.elements["p8_Organization"];
  var repOrg = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_OrganizationName"].disabled = false;

    frm.elements["p8_OnePerson"].checked = false;
    frm.elements["p8_Relationship"].disabled = true;
    frm.elements["p8_Relationship"].value = "";
  }
  if (inp == srcElem) return true;

  inp = frm.elements["p8_OnePerson"];
  var repOne = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_Relationship"].disabled = false;

    frm.elements["p8_Organization"].checked = false;
    frm.elements["p8_OrganizationName"].disabled = true;
    frm.elements["p8_OrganizationName"].value = "";
  }
  if (inp == srcElem) return true;

  if (srNo && (!repOne && !repOrg || repOne && repOrg)) {
    if (srcElem == frm.elements["p8_Relationship"]) return true;
    if (srcElem == frm.elements["p8_OrganizationName"]) return true;
  }

  if (srNo && (!repOne && !repOrg || repOne && repOrg)) {
    if (!silent) alert("Please indicate whether your representative is one person or an organization.");
    goback(frm.elements["p8_Organization"], srcElem);
    return false;
  }

  var inp = frm.elements["p8_OrganizationName"];
  if (inp == srcElem) return true;
  if (repOrg && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Organization Name");
    goback(inp, srcElem);
    return false;
  }

  var inp = frm.elements["p8_Relationship"];
  if (inp == srcElem) return true;
  if (repOne && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Relationship of the Representative.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p8_LastName"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Last Name of Representative/Organization Contact.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p8_FirstName"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the First Name of Representative/Organization Contact.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p8_RepMr"];
  var repMr = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_RepMs"].checked = false;
  }
  if (inp == srcElem) return true;
  inp = frm.elements["p8_RepMs"];
  var repMs = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_RepMr"].checked = false;
  }
  if (inp == srcElem) return true;

  if (repOne && !repMr && !repMs) {
    if (!silent) alert("Please check off Mr or Ms for the Representative.");
    goback(frm.elements["p8_RepMr"]);
    return false;
  }

  inp = frm.elements["p8_MailingAddress"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Mailing Address.");
    goback(inp, srcElem);
    return false;
  }
  inp = frm.elements["p8_City"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the City.");
    goback(inp, srcElem);
    return false;
  }
  inp = frm.elements["p8_Province"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Province.");
    goback(inp, srcElem);
    return false;
  }
  inp = frm.elements["p8_PostalCode"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Postal Code.");
    goback(inp, srcElem);
    return false;
  }
  if (srNo && !re_postal.test(inp.value)) {
    //    if(!silent) alert("The format of the Postal Code is incorrect.\n\nThe correct format is: A1B2C3.");
    //    goback(inp, srcElem);
    //    return false;
  }

  //add space to postal code (i.e. make "V4F5T4" look like "V4F 5T4"
  var re_postal_needs_space = /^[a-zA-Z][\d][a-zA-Z][\d][a-zA-Z][\d]$/i; //a postal code with no space
  if (re_postal_needs_space.test(trim(inp.value))) {
    inp.value = trim(inp.value);
    inp.value = inp.value.substring(0, 3) + " " + inp.value.substring(3);
  }

  inp = frm.elements["p8_DaytimeAreaCode"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Daytime Phone Area Code.\n\nThe correct format is: 250.");
    goback(inp, srcElem);
    return false;
  }
  if (srNo && !re_areacode.test(inp.value)) {
    if (!silent) alert("The format of the Daytime Phone Area Code is incorrect.\n\nThe correct format is: 123-4567.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p8_DaytimePhone"];
  if (inp == srcElem) return true;
  if (srNo && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Daytime Phone.");
    goback(inp, srcElem);
    return false;
  }
  if (srNo && !re_phone.test(inp.value)) {
    if (!silent) alert("The format of the Daytime Phone is incorrect.\n\nThe correct format is: 123-4567");
    goback(inp, srcElem);
    return false;
  }
  //Add dash to number if necessary
  if (inp.value.indexOf(" ") == 3) inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(4); ;
  if (inp.value.indexOf("-") < 0 && inp.value.length == 7) {
    inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(3);
  }
  inp = frm.elements["p8_OtherAreaCode"];
  if (inp == srcElem) return true;
  if (srNo && !(isExample(inp) || re_empty.test(inp.value)) && !re_areacode.test(inp.value)) {
    if (!silent) alert("The format of the Other Phone Area Code is incorrect.\n\nThe correct format is: 250.");
    goback(inp, srcElem);
    return false;
  }
  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  inp = frm.elements["p8_OtherPhone"];
  if (inp == srcElem) return true;
  if (srNo && !(isExample(inp) || re_empty.test(inp.value)) && !re_phone.test(inp.value)) {
    if (!silent) alert("The format of the Other Phone is incorrect.\n\nThe correct format is: 123-4567.");
    goback(inp, srcElem);
    return false;
  }
  //Add dash to number if necessary
  if (inp.value.indexOf(" ") == 3) inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(4); ;
  if (inp.value.indexOf("-") < 0 && inp.value.length == 7) {
    inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(3);
  }
  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  inp = frm.elements["p8_FaxAreaCode"];
  if (inp == srcElem) return true;
  if (srNo && !(isExample(inp) || re_empty.test(inp.value)) && !re_areacode.test(inp.value)) {
    if (!silent) alert("The format of the Fax Number Area Code is incorrect.\n\nThe correct format is: 250.");
    goback(inp, srcElem);
    return false;
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  
  inp = frm.elements["p8_Fax"];
  if (inp == srcElem) return true;
  if (srNo && !(isExample(inp) || re_empty.test(inp.value)) && !re_phone.test(inp.value)) {
    if (!silent) alert("The format of the Fax Number is incorrect.\n\nThe correct format is: 123-4567.");
    goback(inp, srcElem);
    return false;
  }

  //Add dash to number if necessary
  if (inp.value.indexOf(" ") == 3) inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(4); ;
  if (inp.value.indexOf("-") < 0 && inp.value.length == 7) {
    inp.value = inp.value.substring(0, 3) + "-" + inp.value.substring(3);
  }
  
  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  
  return true;
}

function mutualExcludeCheckboxes(frm, srcElem) {
  var inp;

  inp = frm.elements["p1_WorkerMr"];
  if (inp == srcElem && inp.checked) frm.elements["p1_WorkerMs"].checked = false;
  inp = frm.elements["p1_WorkerMs"];
  if (inp == srcElem && inp.checked) frm.elements["p1_WorkerMr"].checked = false;

  inp = frm.elements["p2_Worker"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Dependant"].checked = false;
    frm.elements["p2_Employer"].checked = false;
    frm.elements["p2_EmployerFirmName"].value = "";
  }
  inp = frm.elements["p2_Dependant"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Worker"].checked = false;
    frm.elements["p2_Employer"].checked = false;
    frm.elements["p2_WorkerBCCareCard"].value = "";
    frm.elements["p2_EmployerFirmName"].value = "";
  }
  inp = frm.elements["p2_Employer"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Dependant"].checked = false;
    frm.elements["p2_Worker"].checked = false;
    frm.elements["p2_WorkerBCCareCard"].value = "";
  }

  inp = frm.elements["p2_AppellantMr"];
  if (inp == srcElem && inp.checked) frm.elements["p2_AppellantMs"].checked = false;
  inp = frm.elements["p2_AppellantMs"];
  if (inp == srcElem && inp.checked) frm.elements["p2_AppellantMr"].checked = false;

  inp = frm.elements["p6_CD"];
  if (inp == srcElem && inp.checked) frm.elements["p6_Paper"].checked = false;
  inp = frm.elements["p6_Paper"];
  if (inp == srcElem && inp.checked) frm.elements["p6_CD"].checked = false;

  inp = frm.elements["p7_Written"];
  if (inp == srcElem && inp.checked) frm.elements["p7_Oral"].checked = false;
  inp = frm.elements["p7_Oral"];
  if (inp == srcElem && inp.checked) frm.elements["p7_Written"].checked = false;

  var docity = false;
  for (var i = 0; !docity && i < cityset.length; i++) {
    inp = frm.elements[cityset[i]];
    if (inp == srcElem) docity = true;
  }
  if (docity) {
    for (var i = 0; i < cityset.length; i++) {
      inp = frm.elements[cityset[i]];
      if (!(inp == srcElem && inp.checked)) {
        inp.checked = false;
      }
    }
  }

  inp = frm.elements["p7_InterpreterNo"];
  if (inp == srcElem && inp.checked) frm.elements["p7_InterpreterYes"].checked = false;
  inp = frm.elements["p7_InterpreterYes"];
  if (inp == srcElem && inp.checked) frm.elements["p7_InterpreterNo"].checked = false;

  inp = frm.elements["p7_WitnessesNo"];
  if (inp == srcElem && inp.checked) frm.elements["p7_WitnessesYes"].checked = false;
  inp = frm.elements["p7_WitnessesYes"];
  if (inp == srcElem && inp.checked) frm.elements["p7_WitnessesNo"].checked = false;

  inp = frm.elements["p8_SelfRepYes"];
  if (inp == srcElem && inp.checked) frm.elements["p8_SelfRepNo"].checked = false;
  inp = frm.elements["p8_SelfRepNo"];
  if (inp == srcElem && inp.checked) frm.elements["p8_SelfRepYes"].checked = false;

  inp = frm.elements["p8_Organization"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_OnePerson"].checked = false;
    frm.elements["p8_Relationship"].value = "";
  }
  inp = frm.elements["p8_OnePerson"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p8_Organization"].checked = false;
    frm.elements["p8_OrganizationName"].value = "";
  }

  inp = frm.elements["p8_RepMr"];
  if (inp == srcElem && inp.checked) frm.elements["p8_RepMs"].checked = false;
  inp = frm.elements["p8_RepMs"];
  if (inp == srcElem && inp.checked) frm.elements["p8_RepMr"].checked = false;
}

function setFirstFocus() {
  document.getElementById("btnOK").focus();
}

function tabTrapFocus(eleList, destination) {

  var frm = document.forms["wcat5form"];

  if (eleList.indexOf(event.srcElement.name) >= 0) {
    var curGroup = eleList.split(",");
    for (var i = 0; i < curGroup.length; i++) {
      if (frm.elements[curGroup[i]].checked) {
        frm.elements[destination].focus();
        return true;
      }
    }
  }

  return false;
}

function tabTrapFocusGroup(eleList, destination, alternate) {
  var frm = document.forms["wcat5form"];

  if (eleList.indexOf(event.srcElement.name) >= 0) {
    var curGroup = eleList.split(",");
    for (var i = 0; i < curGroup.length; i++) {
      if (frm.elements[curGroup[i]].checked) {
        frm.elements[destination].focus();
        return true;
      }
      else {
        frm.elements[alternate].focus();
        return true;
      }
    }
  }
  return false;
}

function tabTrapFocusText(element, destination) {
  var frm = document.forms["wcat5form"];
  var inp = frm.elements[element];
  if (element.indexOf(event.srcElement.name) >= 0) {
    frm.elements[destination].focus();
    return true;
  }
  return false;
}

function tabRemoveExample(element) {
  var frm = document.forms["wcat5form"];
  var inp = frm.elements[element];
  if (element.indexOf(event.srcElement.name) >= 0) {

    if (isExample(inp)) {
      frm.elements[element].value = "";

    }
    //return true;
  }
  //return false;   
}

//Added tab key filter for grouped checkboxes, so a tab press on an already-sepcified group value sends the 
//focus to the next section. Filters for Tab, and if pressed, specifies focus depending on the sender. 
function tabTrap() {

  if (event != null && event.keyCode == 9) {

    if (tabTrapFocus("p1_WorkerMr,p1_WorkerMs", "p1_WorkSafeBCClaim"))
      return false;

    if (tabTrapFocusGroup("p2_Worker", "p2_WorkerBCCareCard", "p2_Employer"))
      return false;

    if (tabTrapFocusGroup("p2_Employer", "p2_EmployerFirmName", "p2_Dependant"))
      return false;

    if (tabTrapFocusGroup("p2_Dependant", "p2_LastName", "p2_LastName"))
      return false;


    if (tabTrapFocusText("p2_WorkerBCCareCard", "p2_MailingAddress"))
      return false;

    if (tabTrapFocusText("p2_EmployerContactJobTitle", "p2_LastName"))
      return false;


    if (tabTrapFocus("p2_AppellantMr,p2_AppellantMs", "p2_MailingAddress"))
      return false;

    if (tabTrapFocusText("p5_RequestOutcome", "p6_CD"))
      return false;

    if (tabTrapFocus("p6_CD,p6_Paper", "p7_Written"))
      return false;

    if (tabTrapFocusGroup("p7_Written", "p8_SelfRepYes", "p7_Oral"))
      return false;

    if (tabTrapFocus("p7_Oral", "p7_OralHearingReason"))
      return false;

    if (tabTrapFocus("p7_Castlegar,p7_Cranbrook,p7_Kamloops,p7_Nanaimo,p7_Richmond,p7_Victoria,p7_Courtenay,p7_FortStJohn,p7_Kelowna,p7_PrinceGeorge,p7_Terrace,p7_WilliamsLake", "p7_InterpreterNo"))
      return false;

    if (tabTrapFocusGroup("p7_InterpreterNo", "p7_WitnessesNo", "p7_InterpreterYes"))
      return false;

    if (tabTrapFocus("p7_InterpreterYes", "p7_Language"))
      return false;

    if (tabTrapFocus("p7_WitnessesNo,p7_WitnessesYes", "p8_SelfRepYes"))
      return false;

    if (tabTrapFocus("p8_SelfRepYes", "p10_AddedPages"))
      return false;

    if (tabTrapFocus("p8_SelfRepNo", "p8_Organization"))
      return false;

    if (tabTrapFocusGroup("p8_Organization", "p8_OrganizationName", "p8_OnePerson")) //element, checked destination, unchecked destination
      return false;

    if (tabTrapFocusText("p8_OrganizationName", "p8_LastName"))
      return false;

    if (tabTrapFocusText("p8_Relationship", "p8_LastName"))
      return false;

    if (tabTrapFocusText("p8_Fax", "p8_AuthEnclosed"))
      return false;

    if (tabTrapFocus("p8_RepMr,p8_RepMs", "p8_MailingAddress"))
      return false;

    if (tabTrapFocus("p8_AuthEnclosed,p8_AuthOnFile", "p10_AddedPages"))
      return false;

    if (tabTrapFocusText("p10_Pages", "p10_DecisionCopy"))
      return false;

    if (tabTrapFocus("p10_Pages", "p10_DecisionCopy"))
      return false;

    if (tabTrapFocus("p10_DecisionCopy", "btnPrint"))
      return false;
      
    // Keep focus on print button when tabbing with the print button highlighted
    if (tabTrapFocusText("btnPrint", "btnPrint"))
      return false;

  }
  return true;

}

//I can't think of a better way to do this... the control names are somewhat inconsistent and the number 
// of checks in a group are variable... so I'm doing these highlight sets handraulically.
function setCheckBoxGroupHighlight(frm, elem, on) {

  //determine the group: 
  var eleGroup;
  var curGroup;

  curGroup = "p1_WorkerMr,p1_WorkerMs";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p2_Worker,p2_Employer,p2_Dependant";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p2_AppellantMr,p2_AppellantMs";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p3_CopyIsAttached";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p6_CD,p6_Paper";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p7_Written,p7_Oral";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p7_Castlegar,p7_Cranbrook,p7_Kamloops,p7_Nanaimo,p7_Richmond,p7_Victoria,p7_Courtenay,p7_FortStJohn,p7_Kelowna,p7_PrinceGeorge,p7_Terrace,p7_WilliamsLake";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p7_InterpreterYes,p7_InterpreterNo";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p7_WitnessesYes,p7_WitnessesNo";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p8_SelfRepYes,p8_SelfRepNo";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p8_Organization,p8_OnePerson";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p8_RepMr,p8_RepMs";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p8_AuthEnclosed,p8_AuthOnFile";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p10_AddedPages";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p10_DecisionCopy";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  if (eleGroup == null)
    return;

  //then set it to on or off: 
  if (on) {
    for (var i = 0; i < eleGroup.length; i++) {
        frm.elements[eleGroup[i]].className = frm.elements[eleGroup[i]].className + " highlight";
        frm.elements[eleGroup[i]].parentNode.style.backgroundColor = 'yellow';
    }
  } else {
    for (var i = 0; i < eleGroup.length; i++) {
        frm.elements[eleGroup[i]].className = frm.elements[eleGroup[i]].className.replace(/\highlight\b/, " ");
        frm.elements[eleGroup[i]].parentNode.style.backgroundColor = 'white';
    }
  }
}


