function hideDiv(pass) {
  var divs = document.getElementsByTagName('div');
  for (i=0;i<divs.length;i++) {
    if (divs[i].id.match(pass)) {//if they are 'see' divs
      if (document.getElementById) // DOM3 = IE5, NS6
        divs[i].style.display="none";// show/hide
      else
      if (document.layers) // Netscape 4
        document.layers[divs[i]].display = 'none';
      else // IE 4
        document.all.hideShow.divs[i].display = 'none';
    }
  }
}

function showDiv(pass) {
  var divs = document.getElementsByTagName('div');
  for (i=0;i<divs.length;i++) {
    if (divs[i].id.match(pass)) {
      if (document.getElementById)
        divs[i].style.display="block";
      else
      if (document.layers) // Netscape 4
        document.layers[divs[i]].display = 'block';
      else // IE 4
        document.all.hideShow.divs[i].display = 'block';
    }
  }
}

function showMultipleDiv(prefix, pass, suffix, delim, callback) {
    var tokens = pass.split(delim);
    for (var i=0; i<tokens.length; i++) {
        var token = tokens[i]
        if (token != "") {
            var divId = prefix + token + suffix;
            showDiv(divId);
            callback(divId);
        }
    }
}

function toggleDiv(pass) {
  var divs = document.getElementsByTagName('div');
  for (i=0;i<divs.length;i++) {
    if (divs[i].id.match(pass)) {
      if (document.getElementById)
        if (divs[i].style.display=="block")
          divs[i].style.display="none";
        else
          divs[i].style.display="block";
      else
      if (document.layers) // Netscape 4
        if (document.layers[divs[i]].display=="block")
          document.layers[divs[i]].display = 'none';
        else
          document.layers[divs[i]].display = 'block';
      else // IE 4
        if (document.all.hideShow.divs[i].display=="block")
          document.all.hideShow.divs[i].display = 'none';
        else
          document.all.hideShow.divs[i].display = 'block';
    }
  }
}

function toggleAllCheckboxes(controlField, listField) {
  var size = listField.length;
  for (i = 0; i < size; i++) {
    listField[i].checked = controlField.checked;
  }
}

function removeSelectionOptions(selection) {
  var length = selection.length;
  for (var i=0; i<length; i++) {
    selection.options[0] = null;
  }
}

function replaceSelectionOptions(sourceSelection, targetSelection) {
  var selectedValue = targetSelection.value;
  var reselected = false;
  removeSelectionOptions(targetSelection);
  var length = sourceSelection.length;
  for (i=0; i<length; i++) {
    var currentOption = sourceSelection.options[i];
    targetSelection.options[i] = new Option(currentOption.text, currentOption.value);
    if (currentOption.value == selectedValue) {
        targetSelection.options[i].selected = true;
        reselected = true;
    }
  }
  if (!reselected) {
      targetSelection.selectedIndex = 0;
  }
}

function sliceTextField(textFieldName, notificationName, length) {
    var textField = document.getElementById(textFieldName);
    if (textField != null) {
        var value = textField.value;
        var newValue = value.slice(0, length);
        if (value != newValue) {
            textField.value = newValue;
        }
        var notificationElement = document.getElementById(notificationName);
        if (notificationElement) {
            var remaining = length - newValue.length;
            if (remaining < 0) remaining = 0;
            notificationElement.innerHTML = remaining;
        }
    }
}

function disableAllFields() {
    for (var j = 0; j<document.forms.length; j++) {
        var form = document.forms[j];
        disableFormFields(form);
    }
}

function disableFormFields(form) {
    for (var i = 0; i<form.elements.length; i++) {
        var formElement = form.elements[i];
        if (formElement.type == "submit") {
            if (formElement.className.indexOf("alwaysEnabled") == -1) {
                formElement.style.display = "none";
            }
        }
        else if (formElement.type != "hidden") {
            if (formElement.className.indexOf("alwaysEnabled") == -1) {
                formElement.disabled = true;
            }
        }
    }
    for (var i = 0; i<document.images.length; i++) {
        var img = document.images[i];
        if (img.className.indexOf("calendar-img") != -1) {
            img.style.display = "none";
        }
    }
}

function enableAllFields() {
    for (var j = 0; j<document.forms.length; j++) {
        var form = document.forms[j];
        enableFormFields(form);
    }
    for (var i = 0; i<document.images.length; i++) {
        var img = document.images[i];
        if (img.className.indexOf("calendar-img") != -1) {
            img.style.display = "";
        }
    }
}

function enableFormFields(form) {
    for (var i = 0; i<form.elements.length; i++) {
        var formElement = form.elements[i];
        if (formElement.type == "submit") {
            formElement.style.display = "";
        }
        else if (formElement.type != "hidden") {
            formElement.disabled = false;
        }
    }
}

