<!--
// validate.js - spolem.net - copyright Jake Laack - ekaj@spolem.net
//

function sameValue(control1, control2, label)
{
  if(control1.value == control2.value) {
    return true;
  } else {
    var originalBackgroundColor1 = control1.style.backgroundColor;
    var originalBackgroundColor2 = control2.style.backgroundColor;
    control1.style.backgroundColor = "#FF0";
    control2.style.backgroundColor = "#FF0";
    errorMessage(label + " are different.");
    control1.style.backgroundColor = originalBackgroundColor1;
    control2.style.backgroundColor = originalBackgroundColor2;
    control1.focus();
    return false;
  }
}


function filterTest(control, filter, error)
{
  if(filter.test(control.value)) {
    return true;
  } else {
    var originalBackgroundColor = control.style.backgroundColor;
    control.style.backgroundColor = "#FF0";
    errorMessage(error);
    control.style.backgroundColor = originalBackgroundColor;
    control.focus();
    return false;
  }
}


function minimalString(control, error)
{
  var minimalFilter = /.{1,}/;
  
  return filterTest(control, minimalFilter, error);
}

function validEmail(control)
{
	var emailfilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

  return filterTest(control, emailfilter, "Please enter a valid e-mail.");
}


function validPassword(control)
{
//  var passwordfilter = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}$/;
  var passwordfilter1 = /^[a-zA-Z]/; //start with letter
  var passwordfilter2 = /[A-Z]+/; //contain at least one capital letter;
  var passwordfilter3 = /[0-9]+/; //contain at least one digit;
  var passwordfilter4 = /^[a-zA-Z0-9]{6,12}$/; //contain at least one capital letter;
  var error = "Please enter a valid password:\n6-12 characters including lowercase letters, uppercase letters and digits";

  return filterTest(control, passwordfilter1, 'This password must start with a letter.') && 
         filterTest(control, passwordfilter2, 'This password must contain a capital letter.') && 
         filterTest(control, passwordfilter3, 'This password must contain a digit.') && 
         filterTest(control, passwordfilter4, 'This password must contain between 6 and 12 letters and digits.');
}


function validPasswordSet(control1, control2)
{
  if(! sameValue(control1, control2, 'Passwords')) {
    control1.value = "";
    control2.value = "";
    return false;
  } else {
    return true;
  }
}


function validFirstName(control)
{
  return minimalString(control, "Please enter a first name.");
}

function validLastName(control)
{
  return minimalString(control, "Please enter a last name.");
}

function validAddress(control)
{
  return minimalString(control, "Please enter an address.");
}

function validHomePhone(control)
{
  return minimalString(control, "Please enter a home phone number.");
}

//-->
