function validation(formElemName, elemType, upToSnuff, alertText) {
  this.formElemName = formElemName;
  this.elemType = elemType;
  this.upToSnuff = upToSnuff;
  this.alertText = alertText;
}

function isText(str) {return (str != "")}

function isNumber(str) {return (!(isNan(parseInt(str))))}

function isSelect(formObj) {
    return (formObj.selectedIndex != 0)
  }

function isRadio(formObj) {
  for (j=0; j<formObj.length; j++) {
    if (formObj[j].checked) {
      return true;
    }
  }
  return false;
}

function isCheck(formObj, form, begin, num) {
  for (j=begin; j<begin+num; j++) {
    if (form.elements[j].checked) {
      return true;
    }
  }
  return false;
}

function isPersonName(str) {
  re=/^[-A-Za-z]+\.?(\s+[-A-Za-z]+,?)+$/;
  tmp = re.test(str);
  return tmp;
}

function isEmail(str) {
  re=/^[^@\s]+@[^@\s.]+(\.[^@\s.]+)+$/;
  tmp = re.test(str);
  return tmp;
}

function isZip(str) {
   re=/^[0-9]{5}(-[0-9]{4})?$/;
   tmp = re.test(str);
   if (tmp == false) {
    re=/^[0-9A-Za-z]{3}\s?-?[0-9A-Za-z]{3}$/;
    tmp = re.test(str);
   }
  return tmp;
}

function isPhoneNum(str) {
  re=/^\(?[0-9]{3}[-)\s.\/]+[0-9]{3}[-\s.\/]+[0-9]{4}$/;
  tmp = re.test(str);
  return tmp;
}

function validate(form) {
  var formElemName = "";
  var alertText = "";
  var formObj = "";
  var str = "";

  for (i=0; i<elems.length; i++) {
    formElemName = elems[i].formElemName;
    formObj = eval("form." + formElemName);
    alertText = elems[i].alertText;
    str = formObj.value;

    if (eval(elems[i].upToSnuff)) {
  	  if (formObj.value) {
   		re = /([A-Z]{3})/g;
		myArray = str.match(re);
   		if (myArray) {
   		alert('Please do not use all caps');
      	}
 		else {  
   		continue;
   		}
  	  } 
    }
	else{
      alert (alertText);
      var goToObj = formObj;
      if (goToObj.select) goToObj.select();
      if (goToObj.focus) goToObj.focus();
      else { if (goToObj[0].focus) goToObj[0].focus(); }
      return false;
    }
  }
}