function resethilite(formobj, numOfRadios, bkGrdColor, fieldcount) {
	if ((br != "N") && (br != null)){
		if (numOfRadios != 0) {
			for (var j = 0; j < numOfRadios; j++) {
				document.all.tags("EM").item(j).style.backgroundColor = bkGrdColor;
			}
		}
		for (var j = 0; j < fieldcount; j++) {
			var fieldname = RequiredFieldNames[j];
			formobj.elements[fieldname].style.backgroundColor="white";
		}
	}
}

// This highlights the text box to #FFFFA6 -  You can put in any color!!!!
function hilite(formobj, field, isChecked) {
	if (document.all) {
		if (field == "current" || field == "new") {
			if (isChecked==false && field == "current"){
				document.all.tags("EM").item(0).style.backgroundColor = "#FFFFA6";
				document.all.tags("EM").item(1).style.backgroundColor = "#FFFFA6";
			}
			if (isChecked==false && field == "new"){
				document.all.tags("EM").item(2).style.backgroundColor = "#FFFFA6";
				document.all.tags("EM").item(3).style.backgroundColor = "#FFFFA6";
			}
		}
		else{
			formobj.elements[field].style.backgroundColor="#FFFFA6";
		}
	}
}

// Checks if data is entered!!!!
function checkRequiredFields(formObj,RequiredFields, FieldDescs, FieldTypes, totalcount) {
	var MissingFields = "";
	var fieldname = "";
	var fieldval = "";
	var fieldtype = "";
	var fielddesc = "";
	var isChecked = false;
	for (var i=0; i<totalcount; i++)  {
		fieldname = RequiredFields[i];
		fielddesc = FieldDescs[i];
		fieldtype = FieldTypes[i];
		fieldval = ""; // initialize each time through! 

		// check type of field: 
		if (fieldtype == "text") {
			fieldval = formObj[fieldname].value;
		}
		else {
			if (fieldtype == "radio") {
				for (var j = 0; j < formObj[fieldname].length; j++) {
					isChecked=false
					if (formObj[fieldname][j].checked) {	
						isChecked=true
						fieldval = formObj[fieldname][j].value
					}
				}
			}
		}
		if (fieldval == "") {     
 			if (MissingFields == "") {
				MissingFields = "\n"
			}
			MissingFields = MissingFields + "\n" + fielddesc
			hilite(formObj, fieldname, isChecked)
		} // if missing
	} // for
	return MissingFields;
}// function checkRequiredFields

function getDomain(f){
	var NUMBER_OF_DOMAINS = 9;
	var domain = new Array(".com",".org",".net",".mil",".edu",".fr",".cc",".ca",".usa");
  for (var i = 0; i < NUMBER_OF_DOMAINS; i++)
     {
     if (f.toLowerCase().indexOf(domain[i]) != -1) {return domain[i];}
     }
  return "invalid";
  }

function isDots(f, maxDots)
  {
  var oldIndex = 0;
  var newIndex = -2;
  var length = f.length;
  var count = 0;
  for (var i = 0; i < length; i++)
     {
     var ch = f.substring(i, i + 1);
     oldIndex = newIndex;
     if (ch == ".")
       {
       count++;
       newIndex = f.indexOf(".",i);
       }
     if ((newIndex - oldIndex) == 1) {return (false);}
     }
  if (count > maxDots) {return (false);}
  return (true);
}

function illegalChar(f,str)
  {
  var illegalCharacters = str;
  for (var i = 0; i < illegalCharacters.length; i++)
     {
     if (f.indexOf(illegalCharacters.substring(i, i + 1)) != -1) 
       {return (true);}
     }
  return (false);
}
  
function checkEmailFormat(formObj, fieldname){
  var f=formObj[fieldname].value;
  var length = f.length;
  var domainName = getDomain(f);
  if ((f != "") && ((f.indexOf("@") < 1) || (f.indexOf("@") >= (f.toLowerCase().indexOf(domainName) - 1)) ||
      (f.indexOf("@") != f.lastIndexOf("@")) || (!isDots(f, 2)) || (f.indexOf(".") < (f.indexOf("@") + 2)) || 
      ((length - f.toLowerCase().indexOf(domainName)) != domainName.length) || (illegalChar(f,":(){}[];=/?*&^%$#!+`\\~'\"")))) {
		MissingFields = MissingFields + "\n\"" + formObj[fieldname].value + "\" is an invalid e-mail address."
		hilite(formObj, fieldname, "");
  }
}

function checkPhoneFormat(formObj, fieldname){
   var f=formObj[fieldname].value;
   if ((f != "") && (f.indexOf("-") != 3)) {
		MissingFields = MissingFields + "\n\"" + f + "\" is an invalid phone number. Please use ###-###-#### or ###-######## format."
		hilite(formObj, fieldname, "")
	}
}
  
function digitsOnly(f,m,s){
  var length = f.length;
  for (var i = 0; i < length; i++)
     {
     var ch = f.substring(i, i + 1);
     if ( ((ch < "0") || (ch > "9")) && (ch != "(") && (ch!= ")") && (ch != "-"))
       {
       alert(s  + " field only accepts digits(0 - 9).\nPlease re-enter your " + s + ".");
       m.focus();
       return (false);
       }
     }
  return (true);
  }
function charOnly(f,m,s){
  var length = f.length;
  var ch = "";
  for (var i = 0; i < length; i++)
     {
     ch = f.substring(i, i + 1);
     if ( ((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && ch != " ")
       {
       alert(s  + " field only accepts letters(a - z) & spaces.\nPlease re-enter your " + s + ".");
       m.focus();
       return (false);
       }
     }
  return (true);
  }