/*  Copyright © 2001, 2002 OGMA Consulting Corp. */

// JAVASCRIPT FUNCTION
//-- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL) and elsewhere
function doNothing() {
}

function setFocus(notFirstField) {
  for (var i = 0; i < document.forms[0].length; i++) {
    var e = document.forms[0].elements[i];

    if ((e.style.display != null)
        && (e.style.display != "none")
        && (e.type  != null )
        && (e.type  != "hidden")
        && ((e.type  == "text") || (e.type  == "password"))) {

      if (notFirstField == 'second') {
        notFirstField = ''
        continue;
      }

      fieldName = eval("document.forms[0]." + e.name);
      fieldName.focus();
      break;
    }
  }
}

/*
 * getIdByName(fieldname)
 */
function getIdByName(fieldname) {

  var field = eval("document.forms[0]." + fieldname);

  if (field == null) return "";

  if (field.type == null) return field[0].id;
  else                    return field.id;
}

/*
 * getValueByName(fieldname, multiple)
 *          this tries to mirror the functionality in getValue...
 */
function getValueByName(fieldname, multiple, textValue) {
  try {
    var field = eval("document.forms[0]." + fieldname);
    return _getValueByName(field, multiple, textValue)
  } catch (exception) {
    return '';
  }
}

function getRemoteValueByName(fieldname, frame, multiple) {

  try {
    if (eval(frame + ".document.forms[0]") != null) {
      var field = eval(frame + ".document.forms[0]." + fieldname);
    }

    return _getValueByName(field, multiple)

  } catch (exception) {
    return "";
  }
}

function _getValueByName(field, multiple) {
var fieldValue

  if ((field == null) || (field == '')) return "";

  if (multiple) {
    var i;

    if (field[0].type == "radio") {
      for (i = 0; i < field.length; i++) {
        if (field[i].checked) break;
      }
    }

    if (field[0].type == "checkbox") {
      for (i = 0; i < field.length; i++) {
        if (field[i].checked) break;
      }
    }

    return field[i].value;
  } else {

    if (field.type == null) {

      if ((field[0].type == "checkbox") || (field[0].type == "radio")) {

        for (var i = 0; i < field.length; i++) {

          if (field[i].checked) return field[i].value;
        }
      }

      return "";

    } else if (field.type == "select-one") {

      selectIndex = field.options.selectedIndex;
      fieldValue = field.options[selectIndex].value;

      if (fieldValue == "") fieldValue = field.options[selectIndex].text;

      if (fieldValue == "notSet") fieldValue = "";

      return fieldValue

    /* The following has been added to include
     * checkbox groups with only one checkbox.
     *
     * mgruber (2002/08/07)
     */
    } else if (field.type == "checkbox") {

      if (field.checked) return field.value;
      else               return "";

    } else {
      return field.value;
    }
  }
}

function setRemoteValueByName(fieldname, frame, newValue) {

  try {

    var field = eval(frame + ".document.forms[0]."  + fieldname);

    if (field != null) {

      field.value = newValue;
    }

  } catch (exception) {

  }
}

function setValueByName(fieldname, newValue) {

  var field = eval("document.forms[0]." + fieldname);

  if (field != null) {
    field.value = newValue;
  }
}

/*
 * getValue(index, multiple)
 */
function getValue(index, multiple) {

  var field = eval("document.forms[0].field" + index);

  if (field == null) return "";

  if (multiple) {
    if (field[0].type == "radio") {
      for (var i = 0; i < field.length; i++) {
        if (field[i].checked) break;
      }
    }

    if (field[0].type == "checkbox") {
      for (var i = 0; i < field.length; i++) {
        if (field[i].checked) break;
      }
    }

    return field[i].value;
  } else {
    if (field.type == null) {
      if ((field[0].type == "checkbox") || (field[0].type == "radio")) {
        for (var i = 0; i < field.length; i++) {
          if (field[i].checked) return field[i].value;
        }

        return "";
      }
    } else {
      return field.value;
    }
  }
}

function getImgByName(imgName) {

  var img = null;

  if (isNetscape) {
    img = document.getElementsByName(imgName)
    img = img[0];

  } else if (isIE) {

    img = eval("document.all." + imgName);
  }

  return img;
}

function getRemoteImgByName(frame, imgName) {

  var img = null;

  if (isNetscape) {
    img = frame.document.getElementsByName(imgName)
    img = img[0];

  } else if (isIE) {

    img = frame.eval("document.all." + imgName);
  }

  return img;
}

/*
 * getValueByCharTypeQualifier(charTypeQualifier) :
 *    Returns the field value for the given charTypeQualifier
 *    ex. PublishDate.  Returns an empty string if the
 *    charTypeQualifier was not found.
 */
function getValueByCharTypeQualifier(charTypeQualifier) {

	var currCharTypeQual;

	var fieldCnt = (document.forms[0].DataFieldCnt != null) ? document.forms[0].DataFieldCnt.value : 0;

	for (var i = 1; i <= fieldCnt; i++) {

           /* 22Mar2004(Stbro): add code to handle nulls - this was causing javascript errors */
           if (eval("document.forms[0].field_char_type_qualifier" + i) != null) {
		currCharTypeQual = eval("document.forms[0].field_char_type_qualifier" + i).value;

		if (currCharTypeQual == charTypeQualifier) {

			return eval("document.forms[0].field" + i).value;
		}
           }
	}

	return '';
}

function formsubmit(indicator, msg) {
    if (getValueByName(indicator) != '') {
        alert(msg); 
	window.self.history.back();
      return false;
    }
    else {
      setValueByName(indicator, 'yes');
      document.forms[0].submit();
      return true;
    }
  }