// Additional Form Validation functions developed for AliveTek to be used with formval.js by Stephen Poley
// Author: Nathaniel "Dragon" Bird
// Websites: www.alivetek.com and www.coursecity.com

function validatePassword(valfield,  // element to be validated
                         infofield,  // id of element to receive info/error msg
                         required)   // true if required
{
  var stat = commonCheck (valfield, infofield, required);
  if (stat != proceed) return stat;

  var tfld = trim(valfield.value);  // value of field with whitespace trimmed off
  
  if (tfld.length<5 || tfld.length>32) {
	msg (infofield, "error", "ERROR: 5 - 32 characters required");
	setfocus(valfield);
	return false;
  }  
  
  // Password requires a lowercase letter
  var lettercheck = /[a-z]+/;
  if(!lettercheck.test(tfld)) {
	msg (infofield, "error", "ERROR: one lowercase letter and one number minimum");
	setfocus(valfield);
	return false;
  }
  
  // Password requires a number
  var numbercheck = /[0-9]+/;
  if(!numbercheck.test(tfld)) {
	msg (infofield, "error", "ERROR: one lowercase letter and one number minimum");
	setfocus(valfield);
	return false;
  }
  else
  	msg(infofield, "warn", "");
  return true;
}

function fieldCounter1(valfield,	// element to be validated
					 infofield, // id of element to recieve info/error msg
					 maxlimit)  // max number of characters in this field
{
  var left = maxlimit-valfield.value.length;
  var percent = valfield.value.length/maxlimit;
  if(percent == 1)
  {
  	msg(infofield, "error", "Max of "+maxlimit+" characters");
	return false;
  }
  if(percent > .75)
  {
	if(left == 1)
		var message = "Up to 1 more character";
	else
		var message = "Up to "+left+" more characters"
	msg(infofield, "warn", message);
	return false;
  }
  else
  	msg(infofield, "warn", "");
  return true;
}

function fieldCounter(valfield,		// element to be validated
					  infofield,	// id of element to recieve info/error/extra msg
					  maxlimit) 	// extra message to be used when the field errors are not displayed
{
  var left = maxlimit-valfield.value.length;
  var threshhold = maxlimit-(Math.floor(maxlimit*.75));
  if(left == 0)
  {
	// field is full
  	msg(infofield, "error", "Max of "+maxlimit+" characters");
	return false;
  }
  if(left < threshhold)
  {
	// display warning message
	if(left == 1)
		var message = "Up to 1 more character";
	else
		var message = "Up to "+left+" more characters"
	msg(infofield, "warn", message);
	return false;
  }
  if(left == threshhold)
  	// clear warning 
  	msg(infofield, "warn", ""); 
	
  return true;	
}