function validate(form) {
  var valid = true;
  var inputs = getInputs(form);
  document.getElementById("valid_bar").className = "valid";
  for (var i = 0; i < inputs.length; i++) {
    var input = inputs[i];
    var label = getLabelFor(input);
    if (label && (label.className.indexOf("required") != -1)) {
      input.className = input.className.replace("missing", "");
      if (!input.value) {
        input.className += " missing";
        valid = false;
      }
    }
  }
  
  // Show alert bar if invalid
  if (!valid) {
    document.getElementById("valid_bar").className = "invalid";
  }
  
  return valid;
}

function getInputs(form) {
  var allInputs = new Array();
  var inputElements = form.getElementsByTagName("input");
  var j = 0;
  for (var i = 0; i < inputElements.length; i++, j++) {
    allInputs[j] = inputElements[i];
  }
  var textareaElements = form.getElementsByTagName("textarea");
  for (var i = 0; i < textareaElements.length; i++, j++) {
    allInputs[j] = textareaElements[i];
  }
  return allInputs;
}

function getLabelFor(el) {
  var labels = el.form.getElementsByTagName("label");
  for (var i = 0; i < labels.length; i++) {
    var label = labels[i];
    if (label.htmlFor == el.id) {
      return label;
    }
  }    
}

function clearStatusTip() {
  if (navigator.appName == "Microsoft Internet Explorer") {
    window.status = "";
  }
}

