function validate_form () {
  var errors = 0;
  errors += validate_phone($('form.missionaries input[name=phone]'));
  errors += validate_email($('form.missionaries input[name=emailAddress]'));
/*
	errors += validate_zip($('form.missionaries input[name=zip]'));
*/
  errors += validate_empty($('form.missionaries select[name=country]'));
  errors += validate_empty($('form.missionaries select[name=state]'));
  var fields = ['first', 'last', 'address', 'city'];
  for (var i = 0; i < fields.length; i++ ) {
    errors += validate_empty($('form.missionaries input[name=' + fields[i] + ']'));
  }
  
  if (errors > 0){
    return false;
  } else { 
    $('.form-error-message').css('display', 'none');
    return true;
  }
}

function validate_zip (field) {
  if ($(field).val() != '' && $(field).val() != $(field).attr('title')){
    var val = $(field).val();
    val = val.replace(/[^\d]+/g, '');
    if (val.length >= 5) return 0;
  }

  add_error(field);
  return 1;
}
function validate_phone (field) {
  if ($(field).val() != '' && $(field).val() != $(field).attr('title')){
    var val = $(field).val();
    val = val.replace(/[^\d]+/g, '');
    if (val.length >= 3) return 0;
  }
  
  add_error(field);
  return 1;
}
function validate_email (field) {
  if ($(field).val() != '' && $(field).val() != $(field).attr('title') && /^[^@]+@[^@]+\.[^\@]+$/.test($(field).val())) return 0;
  
  add_error(field);
  return 1;
}
function validate_empty (field) {
  if ($(field).val() != '' && $(field).val() != $(field).attr('title')) return 0;
  
  add_error(field);
  return 1;
}
function add_error(field){
  $('.form-error-message').css('display', 'block');
  if ($(field)[0].tagName == 'SELECT'){
    $(field).prev().addClass('form-error');
  } else {
    $(field).addClass('form-error');
  }
}
function remove_error(field){
  if ($(field)[0].tagName == 'SELECT'){
    $(field).prev().removeClass('form-error');
  } else {
    $(field).removeClass('form-error');
  }
}

function form_arrive (field){
  if (field.value == field.title) field.value = '';
  if ($('.form-error-message').css('display') == 'block') remove_error(field);
}
function form_leave (field){
  if (field.value == '') field.value = field.title;
  if ($('.form-error-message').css('display') == 'block') validate_form();
}

