/**
 * validate.js
 *
 * Client-Side Validation functions.
 *
 * @author Shamblah
 * @version 1.10
 */
 
function validateDefault(field, err) {
  if ( field.value.replace(" ", "") == "" ) {
    alert(err);
    return false;
  }
  return true;
}

function validateSearchField(field, err) {
  if ( field.value.replace(" ", "").length < 2  ) {
    alert(err);
    return false;
  }
  return true;
}

function validateAmount(field, err) {
  if ( field.value == "" || !isNumber(field.value) || field.value < 0 ) {
    alert(err);
    return false;
  }
  return true;
}

function validatePassword(field, err) {
  var re = /[0-9a-zA-Z]{6,}/;

  if ( !re.test(field.value) ) {
    alert(err);
    return false;
  }  
  return true;
}

function validateDate(field, err) {
  var re = /\d{4}-\d{2}-\d{2}/;

  if ( !re.test(field.value) ) {
    alert(err);
    return false;
  }  
  return true;
}

function validateEmail(field, err) {
  var re = /.+@.+\.\w{2,4}/i;
  
  if ( !re.test(field.value) ) {
    alert(err);
    return false;
  }  
  return true;
}

function validateURL(field, err) {
  var re = /^http:\/\/\w+\.[a-z]{2,4}/i;

  // field is optional, no check if empty
  if ( field.value != "" ) {

    if ( field.value.substr(0,7) != "http://" ) {
      field.value = "http://" + field.value;
    }
    if ( !re.test(field.value) ) {
      alert(err);
      return false;
    }
  
  }
  
  return true;
}

function validateVAT(companyField, vatField, rex, err) {
  // rex: VAT regular expression
  var re = null;
     
  if(companyField.value)
  {
    if(rex)
      re = new RegExp(rex);

    if(re)
    {
      if ( !re.test(vatField.value) ) {
        alert(err);
        return false;
      }
    }
  }
  
  return true;
}

function validateCost(field, err) {
  field.value = field.value.replace(",", ".");
  if ( field.value == "" || !isPrice(field.value) || field.value < 0.0 ) {
    alert(err);
    return false;
  }
  return true;
}

function validatePrice(afield, pfield, isfirst, err) {
  // amount & price fields
  pfield.value = pfield.value.replace(",", ".");
  if ( isfirst == 1 && (afield.value == "" || pfield == "" ) ) {
    // first amount/price pair should exist
    alert(err);
    return false;
  } else if ( afield.value != "" && pfield != "" ) {
    if ( afield.value <= 0 || !isPrice(pfield.value) || pfield.value <= 0.0 ) {
      alert(err);
      return false;
    }
  }
  return true;
}

// ===============================================================================

function isPrice(str) {
  var re = /^\d+(\.\d{2}){0,1}$/;
  
  return re.test(str);
}

function isNumber(str) {
  var re = /^\d+$/;
  
  return re.test(str);
}
