/*  Copyright © 2001, 2002 OGMA Consulting Corp. */

/*
 * setChanged(change, additional) : used to indicate whether a field has been changed
 */
function setChanged(change, additional, field, frame) {
  if (setChanged.arguments.length < 4) {
    var frame = "";
  }

  var isChanged = eval(frame + "document.forms[0]." + change);

  if (isChanged != null) {
    if (additional != 'password') {
      isChanged.value = "yes";

      if      (additional == 'phone')   document.forms[0].phoneIsChanged.value  = 'yes'
      else if (additional == 'fax')     document.forms[0].faxIsChanged.value    = 'yes'
      else if (additional == 'mobile')  document.forms[0].mobileIsChanged.value = 'yes'
      else if (additional == 'address') document.forms[0].pageChanged.value     = 'yes'

    } else { //it's password, so field will have been passed in
      if (field.value == '') {
        isChanged.value = 'no';
      } else {
        isChanged.value = 'yes';
      }
    }
  }
}

/*
 * setChanged1(change) : used to indicate whether a field has been changed
 *                       for the add portion of an add/edit screen, also in calendar.js
 */
function setChanged1(change, value, frame) {

  if ((setChanged1.arguments.length == 1) || (value == '')) {
    value = "yes";
  }

  if (setChanged1.arguments.length < 3) {
    var frame = "";
  }

  var field;
  var f = eval(frame + 'document.forms[0]');


  for (var i = 0; i < f.length; i++) {

    var e = f.elements[i];

    if ((e.type == "text") || (e.type == "textarea") ||
       ((e.type != "hidden") && (e.type != "submit") && (e.type != "radio") && (e.type != "reset") && (e.type != "checkbox"))) {

      try {
        field       = eval(frame + "document.forms[0]." + e.name + "isChanged");
        field.value = value;
      } catch (alert) {
      }
    }
  }

  field       = eval(frame + 'document.forms[0].' + change)
  field.value = value
}

/*
 * setChanged2(field, change, addEdit) : used to indicate whether a field has been changed
 *                              for an edit item (or a page where there are more
 *                              than one record to be modified with the HTML
 *                              produced in the dll
 */
function setChanged2(field, change, addEdit, frame) {
  var field;

  if (setChanged2.arguments.length < 4) {
    frame = "";
  }

  if (addEdit != "add") {
    field       = eval(frame + "document.forms[0]." + field + "isChanged");
    field.value = "yes";

    field       = eval(frame + "document.forms[0]." + change);
    field.value = "yes";
  } else {
    setChanged1(change);
  }
}

/*
 * setChanged3(field1, field2, change) : used to indicate whether a field has been changed
 *                              for adding a description in the tablemaint
 */
function setChanged3(field1, field2, change, frame) {

  var field;

  if (setChanged3.arguments.length < 4) {
    frame = "";
  }

  field       = eval(frame + "document.forms[0]." + field1 + "isChanged");
  field.value = "yes";

  field       = eval(frame + "document.forms[0]." + field2 + "isChanged");
  field.value = "yes";

  field       = eval(frame + "document.forms[0]." + change);
  field.value = "yes";
}

/*
 * setChangedIgnoreBlank(i)
 *   This function is specifically designed to set the changed flag on
 *   the 'QualifiedList' entries.  Those entries are presented with an option
 *   to select a blank value when no corresponding op_char... record is found.
 *   If a user select a valid entry and then selects a blank (because they mis-selected).
 *   then the change flag will not be set to 'yes'
 */
function setChangedIgnoreBlank(i, multiple) {

  var dataValue   = getValue(i, multiple)
  var changefield = eval('document.forms[0].field_ischanged' + i)

  if ((dataValue == ' ') || (dataValue == '')) {
    changefield.value = "?";
  } else {
    changefield.value = "yes";
  }
}


/* 01Jan2005(Stbro): function to flip a field between yes and no, primarily for checkboxes 
   The setChanged only ever sets it to yes and deselecting the checkbox does NOT reset it to no !!!! */
function flipChanged(change) {

  var changefield = eval("document.forms[0]." + change);

  if (changefield != null) {
    if ((changefield.value == 'no') || (changefield.value == '')) {
      changefield.value = 'yes';
    }
    else {
      changefield.value = 'no';
    }
  }
}

