var validNameChars = lowercaseLetters + "'.- ";
var validLoginNameChars = lowercaseLetters + digits + "_-"

function isFirstSelected(select)
{
  return (select.selectedIndex == 0);
}

function validatePersInfo(form)
{
  if (isFirstSelected(form.optTitle_ID))
  {
    alert( "Geef a.u.b. uw titel aan in het veld \"titel\"." );
    form.optTitle_ID.focus();       
    return false;
  }
  else if (isWhitespace(form.txtFirstName.value))
  {
    alert( "Vul a.u.b. uw voornaam in het veld \"voornaam\" in.");
    form.txtFirstName.focus();    
    return false;
  }
  else if (!isCharsInBag(form.txtFirstName.value.toLowerCase(), validNameChars))
  {
    alert( "Gebruik a.u.b. alleen letters in het veld \"voornaam\".");
    form.txtFirstName.focus();    
    return false;
  }  
  else if (isWhitespace(form.txtLastName.value))
  {
    alert( "Vul a.u.b. uw achternaam in het veld \"achternaam\" in.");
    form.txtLastName.focus();    
    return false;
  }
  else if (!isCharsInBag(form.txtLastName.value.toLowerCase(), validNameChars))
  {
    alert( "Gebruik a.u.b. alleen letters in het veld \"achternaam\".");
    form.txtLastName.focus();    
    return false;
  } 
  return true;
}

function validateEmail(form)
{
  if (!isEmail(form.txtEmail.value))
  {
    alert( "Vul a.u.b. een geldig emailadres in het veld \"e-mail\" in.");
    form.txtEmail.focus();    
    return false;
  } 
  return true;
}

function validateBirthDate(form)
{
  if (!isInteger(form.txtBirthDateYear.value) ||
    (parseInt(form.txtBirthDateYear.value) < 1900) || (parseInt(form.txtBirthDateYear.value) > 1995))
  {
    alert( "Vul a.u.b. een geldig jaar in het veld \"geboortedatum\" in.");
    form.txtBirthDateYear.focus();    
    return false;
  } 
  else if (!isDate(form.txtBirthDateYear.value, form.optBirthDateMonth_ID.options[form.optBirthDateMonth_ID.selectedIndex].value, form.optBirthDateDay.options[form.optBirthDateDay.selectedIndex].value))
  {
    alert( "Vul a.u.b. een geldige datum in het veld \"geboortedatum\" in.");
    form.txtBirthDateDay.focus();    
    return false;
  } 
  else if ( 
    ((isFirstSelected(form.optBirthDateMonth_ID) || isFirstSelected(form.optBirthDateDay)) && !isWhitespace(form.txtBirthDateYear.value)) ||
    (isFirstSelected(form.optBirthDateMonth_ID) && !isFirstSelected(form.optBirthDateDay)) || 
    (!isFirstSelected(form.optBirthDateMonth_ID) && isFirstSelected(form.optBirthDateDay)) )
  {
    alert( "Vul a.u.b. een geldige geboortedatum in het veld \"geboortedatum\" in.");
    form.txtBirthDateYear.focus();    
    return false;
  } 
  return true;
}

function validateLoginName(form)
{
  if (isWhitespace(form.txtLoginName.value) ||
    !isCharsInBag(form.txtLoginName.value.toLowerCase(), validLoginNameChars) ||
    (form.txtLoginName.value.length < 4) || (form.txtLoginName.value.length > 12))
  {
    alert( "Vul a.u.b. een login naam in tussen de 4 en 12 karakters in het veld \"login naam\".");
    form.txtLoginName.focus();    
    return false;
  } 
  return true;
}

function validatePassword(form)
{
  if (isWhitespace(form.txtPassword.value) || (form.txtPassword.value.length < 4) || (form.txtPassword.value.length > 12))
  {
    alert( "Vul a.u.b. een wachtwoord in tussen de 4 en 12 karakters in het veld \"wachtwoord\".");
    form.txtPassword.focus();    
    return false;
  }    
  else if (form.txtPassword.value != form.txtRePassword.value)
  {
    alert( "Uw wachtwoorden komen niet overeen. Zorg er a.u.b. voor dat uw wachtwoorden identiek zijn.");
    form.txtPassword.value = "";
    form.txtRePassword.value = "";
    form.txtPassword.focus();    
    return false;
  }    
  return true;
}

function validateAccPassword(form)
{
  if (!isWhitespace(form.txtPassword.value) || !isWhitespace(form.txtRePassword.value))
  {
    return validatePassword(form);
  }    
  return true;
}

function validatePhones(form)
{
  if (!isCharsInBag(form.txtHomePhone.value, validWorldPhoneChars))
  {
    alert( "Gebruik a.u.b. getallen of de karakters ()-+ in het veld \"telefoon prive\".");
    form.txtHomePhone.focus();    
    return false;
  }  
  else if (!isCharsInBag(form.txtWorkPhone.value, validWorldPhoneChars))
  {
    alert( "Gebruik a.u.b. getallen of de karakters ()-+ in het veld \"telefoon werk\".");
    form.txtWorkPhone.focus();    
    return false;
  }  
  else if (!isCharsInBag(form.txtMobilePhone.value, validWorldPhoneChars))
  {
    alert( "Gebruik a.u.b. getallen of de karakters ()-+ in het veld \"mobiel nummer\".");
    form.txtMobilePhone.focus();    
    return false;
  }  
  return true;
}

//  else if (!isCharsInBag(form.txtFax.value, validWorldPhoneChars))
//  {
//    alert( "Gebruik a.u.b. getallen of de karakters ()-+ in het veld \"fax nummer\".");
//    form.txtFax.focus();    
//    return false;
//  }  

function validatePhone(form)
{
  if (!isCharsInBag(form.txtPhone.value, validWorldPhoneChars))
  {
    alert( "Vul a.u.b. nummers of de karakters ()-+ in in het \"telefoon\" veld.");
    form.txtPhone.focus();    
    return false;
  }  
  return true;
}

function validateAddress(form)
{
  if (isWhitespace(form.txtAddress.value))
  {
    alert( "Vul a.u.b. uw adres in het veld \"adresgegevens\" in.");
    form.txtAddress.focus();    
    return false;
  }
  else if (isWhitespace(form.txtCity.value))
  {
    alert( "Vul a.u.b. uw woonplaats in het veld \"woonplaats\" in.");
    form.txtCity.focus();    
    return false;
  }
  else if (isWhitespace(form.txtZipCode.value))
  {
    alert( "Vul a.u.b. uw postcode in het veld \"postcode\" in.");
    form.txtZipCode.focus();    
    return false;
  }
  return true;
}

function validateAddress2(form)
{
  if (!isWhitespace(form.txtAddress.value)  ||
    !isWhitespace(form.txtCity.value) ||
    !isWhitespace(form.txtZipCode.value) ||
    !isWhitespace(form.txtRegion.value))
  {
    return validateAddress(form);
  }
  return true;
}

function removeConfirmation(form)
{
  if (confirm("Weet u zeker dat u het onderstaande adres wilt verwijderen?" + 
    "\n\n" + form.hdnMsgRemoveAddress.value.replace(/<br>/gi, "\n")))
  {
    form.hdnRemoveAddress.value = "Y";
    form.submit();
  } 
}

function validateRegistration(form)
{
  if (validatePersInfo(form) &&
    validateEmail(form) &&
    validateLoginName(form) &&
    validatePassword(form))
  {
    return true;
  } 
  return false;
}

function validateAccountPersInfo(form)
{
  if (validatePersInfo(form) &&
    validateBirthDate(form))
  {
    return true;
  } 
  return false;
}

function validateAccountAccInfo(form)
{
  if (validateLoginName(form) &&
    validateEmail(form) &&
    validateAccPassword(form))
  {
    return true;
  } 
  return false;
}

function validateWomanRegistration(form)
{
  if (validatePersInfo(form) &&
    validateEmail(form) &&
    validatePhone(form) &&
    validateAddress2(form))
  {
    return true;
  } 
  return false;
}

function validateCorporateRegistration(form)
{
  if (validatePersInfo(form) &&
    validatePhone(form) &&
    validateEmail(form) &&
    validateLoginName(form) &&
    validatePassword(form))
  {
    return true;
  } 
  return false;
}

function validateAppointment(form)
{
  if ((isWhitespace(form.txtName.value)) || (!isCharsInBag(form.txtName.value.toLowerCase(), lowercaseLetters + ".- ")))
  {
    alert( "Vul a.u.b. alleen letters in in het \"Naam\" veld.");
    form.txtName.focus();    
    return false;
  } 
  else if (!isEmail(form.txtEmail.value))
  {
    alert( "Vul a.u.b. een geldig email adres in in het \"Email\" veld.");
    form.txtEmail.focus();    
    return false;
  }   
  else if ((isWhitespace(form.txtPhone.value)) || (!isCharsInBag(form.txtPhone.value, validWorldPhoneChars)))
  {
    alert( "Vul a.u.b. getallen of de tekens ()-+ in het \"Telefoonnummer\" veld.");
    form.txtPhone.focus();    
    return false;
  }  
  else if ((isWhitespace(form.txtResidence.value)))
  {
    alert( "Vul a.u.b. uw woonplaats in het veld \"Woonplaats\" in.");
    form.txtResidence.focus();    
    return false;
  }
  else if ((isWhitespace(form.txtDate.value)))
  {
    alert( "Vul een geldige datum in in het \"Voorkeursdatum\" veld.");
    form.txtDate.focus();    
    return false;
  }
  else if ((isWhitespace(form.txtTime.value)))
  {
    alert( "Vul een geldige tijd in in het \"Voorkeurstijd\" veld.");
    form.txtTime.focus();    
    return false;
  }
  return true;
}

function validateWorkEmail(form)
{
  if (!isWhitespace(form.txtWorkEmail.value))
    if (!isEmail(form.txtWorkEmail.value))
    {
      alert( "Vul a.u.b. een geldig emailadres in het veld \"e-mail werk\" in.");
      form.txtWorkEmail.focus();    
      return false;
    } 
  return true;
}

function validateNewAccountPersInfo(form)
{
  if (validatePersInfo(form) &&
    validateBirthDate(form) &&
    validateEmail(form) &&
    validatePhones(form) &&
    validateAddress(form) &&
    validateWorkEmail(form))
  {
    return true;
  } 
  return false;
}

