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) {
  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_WorkSafeBCDA"];
  if (inp == srcElem) return true;

  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the WorkSafeBC Discriminatory Action Reference Number(s).");
    goback(inp, srcElem);
    return false;
  }

  var cns = inp.value.split(",");
  for (var i = 0; i < cns.length; i++) {
    if (!re_discrim.test(trim(cns[i]))) {
      if (!silent) alert("The format of the WorkSafeBC Discriminatory Action Reference Number(s) is incorrect.\n\nThe correct format is a 4-digit year followed by a 'D', followed by a series of numbers, separated by dashes (example: 2009-D-123)");
      goback(inp, srcElem);
      return false;
    }
  }

  //document.getElementById("WorkSafeBCDA").innerHTML = inp.value;
 // frm.elements["WorkSafeBCDA"].value = inp.value;
//  frm.elements["WorkSafeBCDA2"].value = inp.value;

  //date of review division decision
  inp = frm.elements["p1_DateOfReviewDivisionDecision"];
  if (inp == srcElem) return true;


  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the Date of Review Division 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 Review Division 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 Review Division 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 Review Division 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 Review Division 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 Review Division Decision is in the future.");
    oldDecisionNoti = false;
    goback(inp, srcElem);
    return false;
  }

  var expDays = 91;
  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 - Application to Reopen or Discriminatory Action \". This Appeal Application will be provided upon printing this form.");
    }
  }

  inp = frm.elements["p1_CopyIsAttached"];
  if (inp == srcElem) return true; ;

  //END SECTION 1

  inp = frm.elements["p2_Worker"];
  if (inp == srcElem && inp.checked) {
    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_Union"].checked = false;
    frm.elements["p2_UnionName"].value = "";
    frm.elements["p2_UnionName"].disabled = true;
    frm.elements["p2_UnionContactJobTitle"].value = "";
    frm.elements["p2_UnionContactJobTitle"].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_Employer"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Worker"].checked = false;
    frm.elements["p2_EmployerFirmName"].disabled = false;
    frm.elements["p2_EmployerContactJobTitle"].disabled = false;
    frm.elements["p2_Union"].checked = false;
    frm.elements["p2_UnionName"].value = "";
    frm.elements["p2_UnionName"].disabled = true;
    frm.elements["p2_UnionContactJobTitle"].value = "";
    frm.elements["p2_UnionContactJobTitle"].disabled = true;
  }
  var employer = inp.checked;
  if (inp == srcElem) return true;

  inp = frm.elements["p2_Union"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Employer"].checked = false;
    frm.elements["p2_Worker"].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_UnionName"].disabled = false;
    frm.elements["p2_UnionContactJobTitle"].disabled = false;
  }
  var union = inp.checked;
  if (inp == srcElem) return true;

  if (!worker && !union && !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 (srcElem == frm.elements["p2_UnionName"]) return true;
    if (srcElem == frm.elements["p2_UnionContactJobTitle"]) return true;
  }

  if (!worker && !union && !employer || (worker && union || union && employer || worker && employer)) {
    if (!silent) alert("Please indicate whether you are the worker, the union, or the employer");
    goback(frm.elements["p2_Worker"], srcElem);
    return false;
  }

  inp = frm.elements["p2_WorkerBCCareCard"];
  if (inp == srcElem) return true;

  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;
  }

  inp = frm.elements["p2_UnionName"];
  if (inp == srcElem) return true;
  if (union && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Union Name.");
    goback(inp);
    return false;
  }
  inp = frm.elements["p2_UnionContactJobTitle"];
  if (inp == srcElem) return true;
  if (union && (isExample(inp) || re_empty.test(inp.value))) {
    if (!silent) alert("Please enter the Union Contact Job Title.");
    goback(inp);
    return false;
  }

  if (worker) {
    frm.elements["p2_EmployerFirmName"].value = "";
    frm.elements["p2_UnionName"].value = "";
    frm.elements["p2_UnionContactJobTitle"].value = "";
    frm.elements["p2_EmployerContactJobTitle"].value = "";
  } else if (union) {
    frm.elements["p2_EmployerFirmName"].value = "";
    frm.elements["p2_EmployerContactJobTitle"].value = "";
  } else if (employer) {
    frm.elements["p2_UnionName"].value = "";
    frm.elements["p2_UnionContactJobTitle"].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;
  }

  if (!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["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;
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  //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_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;
  }

  //if input is valid, remove example watermark
  if (/\bexample\b/.test(inp.className)) {
    inp.className = inp.className.replace(/\bexample\b/, " xmpl ");
    inp.value = "";
  }
  //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["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["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.");
    goback(inp, srcElem);
    return false;
  }

  inp = frm.elements["p1_WorkSafeBCDA"];
  if (inp == srcElem) return true;
  if (isExample(inp) || re_empty.test(inp.value)) {
    if (!silent) alert("Please enter the WorkSafeBC Discriminatory Action Reference Number(s).");
    goback(inp, srcElem);
    return false;
  }
  var cns = inp.value.split(",");
  for (var i = 0; i < cns.length; i++) {
    if (!re_discrim.test(trim(cns[i]))) {
      if (!silent) alert("The format of the WorkSafeBC Discriminatory Action Reference Number(s) is incorrect.\n\nThe correct format is a 4-digit year, followed .");
      goback(inp, srcElem);
      return false;
    }
  }

  inp = frm.elements["p6_GrievanceYes"];
  var grievanceYes = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p6_GrievanceNo"].checked = false;
  }
  if (inp == srcElem) return true;
  inp = frm.elements["p6_GrievanceNo"];
  var grievanceNo = inp.checked;
  if (inp == srcElem && inp.checked) {
    frm.elements["p6_GrievanceYes"].checked = false;
  }
  if (inp == srcElem) return true;

  if ((!grievanceYes && !grievanceNo) || (grievanceYes && grievanceNo)) {
    if (!silent) alert("Please indicate if a grievance under a collective agreement been filed regarding this matter.");
    goback(frm.elements["p6_GrievanceYes"]);
    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;

  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; break; }
  }
  if (docity && srcElem.checked) {
    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_AuthEnclosed"].checked = false;
    frm.elements["p8_AuthOnFile"].disabled = false;
    frm.elements["p8_AuthOnFile"].checked = 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 repMrs = 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 setFirstFocus() {
  document.getElementById("btnOK").focus();
}


//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 tabTrapFocus(eleList, destination) {
  var frm = document.forms["wcat3form"];

  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["wcat3form"];
  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["wcat3form"];
  var inp = frm.elements[element];
  if (element.indexOf(event.srcElement.name) >= 0) {
    frm.elements[destination].focus();
    return true;
  }
  return false;
}

function tabTrap() {
  if (event != null && event.keyCode == 9) {
    if (tabTrapFocus("p1_WorkerMr,p1_WorkerMs", "p1_WorkSafeBCDA"))
      return false;


    if (tabTrapFocusGroup("p2_Worker", "p2_WorkerBCCareCard", "p2_Employer"))
      return false;

    if (tabTrapFocusGroup("p2_Employer", "p2_EmployerFirmName", "p2_Union"))
      return false;

    if (tabTrapFocusGroup("p2_Union", "p2_UnionName", "p2_LastName"))
      return false;

    if (tabTrapFocusText("p2_WorkerBCCareCard", "p2_MailingAddress"))
      return false;

    if (tabTrapFocusText("p2_EmployerFirmName", "p2_EmployerContactJobTitle"))
      return false;

    if (tabTrapFocusText("p2_EmployerContactJobTitle", "p2_LastName"))
      return false;

    if (tabTrapFocusText("p2_UnionName", "p2_UnionContactJobTitle"))
      return false;

    if (tabTrapFocus("p2_AppellantMr,p2_AppellantMs", "p2_MailingAddress"))
      return false;

    if (tabTrapFocusText("p4_WhyIsDecisionIncorrect", "p5_RequestOutcome"))
      return false;

    if (tabTrapFocusText("p5_RequestOutcome", "p6_GrievanceYes"))
      return false;

    if (tabTrapFocus("p6_GrievanceYes,p6_GrievanceNo", "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 = "p1_CopyIsAttached";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p2_Worker,p2_Employer,p2_Union";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p2_AppellantMr,p2_AppellantMs";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");



  curGroup = "p6_GrievanceYes,p6_GrievanceNo";
  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_InterpreterNo,p7_InterpreterYes";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p7_WitnessesNo,p7_WitnessesYes";
  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_OnePerson,p8_Organization";
  if (curGroup.indexOf(elem.name) >= 0)
    eleGroup = curGroup.split(",");

  curGroup = "p8_RepMr,p8_RepMs";
  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_WorkerName";
  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';
    }
  }

}

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_Employer"].checked = false;
    frm.elements["p2_Union"].checked = false;
    frm.elements["p2_EmployerFirmName"].value = "";
    frm.elements["p2_EmployerContactJobTitle"].value = "";
  }

  inp = frm.elements["p2_Employer"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p2_Worker"].checked = false;
    frm.elements["p2_Union"].checked = false;
    frm.elements["p2_WorkerBCCareCard"].value = "";
    frm.elements["p2_UnionName"].value = "";
    frm.elements["p2_UnionContactJobTitle"].value = "";

  }
  inp = frm.elements["p2_Union"];
  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_EmployerContactJobTitle"].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_GrievanceYes"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p6_GrievanceNo"].checked = false;
  }

  inp = frm.elements["p6_GrievanceNo"];
  if (inp == srcElem && inp.checked) {
    frm.elements["p6_GrievanceYes"].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;
}
