<!--
// 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,10})+$/;

  return filterTest(control, emailfilter, "Please enter a valid e-mail.");
}


function validPassword(control)
{
  var passwordfilter = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}$/;

  return filterTest(control, passwordfilter, "Please enter a valid password:\n6-12 characters including lowercase letters, uppercase letters and digits");
}


function validPasswordSet(control1, control2)
{
  if((! sameValue(control1, control2, 'Passwords')) ||
     (! validPassword(control1))) {
    control1.value = "";
    control2.value = "";
    return false;
  } else {
    return true;
  }
}


function validURL(control)
{
//	var urlfilter  = /^[a-zA-Z0-9:\/\-\.]+\.[a-zA-Z]{3,}(\/[a-zA-Z0-9:?&=\/\-\.]*)?$/;

//  return filterTest(control, urlfilter, "Please enter a valid URL.");
  return minimalString(control, "Please enter a URL.");
}


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.");
}

//-->
