function validateForm(f){
  var msg = '';
  
  requiredLabels = getElementsByClass('required',f,'label');
  for(var i=0;i<requiredLabels.length;i++){
    display = requiredLabels[i].innerHTML;
    input = getInputByLabel(requiredLabels[i]);
    inputType = getInputType(input);
    
    if(inputType == 'TEXT' || inputType == 'TEXTAREA' || inputType == 'PASSWORD' || inputType == 'FILE'){
			if(input.value == ''){
        msg += display+' is a required field\n';
      }
		}else if(inputType == 'SELECT'){	
			if(input.value == 0){
        msg += display+' is a required field\n';
      }			
    }else if(inputType == 'CHECKBOX' || inputType == 'RADIO'){
      if(!input.checked){
        msg += display+' must be checked\n';
      }
    }
  }

  if(msg != ''){
    alert(msg);
    return false;
  }

  return true;
}

function getInputType(input){
  if(input.tagName == 'INPUT'){
    inputType = input.type.toUpperCase();
  }else{
    inputType = input.tagName;
  }
  
  return inputType;
}

function getInputByLabel(label){
  var input = '';

  if(el = document.getElementById(label.htmlFor)){
    input = el;
  }
  
  return input;
}

function getLabel(elorid){
  var el = (typeof elorid == 'string' ? document.getElementById(elorid) : elorid);
  var labels = document.getElementsByTagName('label');
  var found = false;
  for(var i=0;i<labels.length;i++){
    if(el.id == labels[i].htmlFor){
      found = true;
      break;
    }
  }
  if(found){
    return labels[i];
  }else{
    return null;
  }
}

function getLabelText(elorid){
  return getLabel(elorid).innerHTML;
}

function getElementsByClass(findClass,node,tag){
  var classEls = new Array();

  if(node == null){
    node = document;
  }
  if(tag == null){
    tag = '*';
  }
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;

  for(var i=0,j=0;i<elsLen;i++){
    if(els[i].className == findClass){
      classEls[j] = els[i];
      j++;
    }
  }

  return classEls;
}
