
// utility function to remove leading and trailing whitespaces from string
function strip(str) {
  return str.replace(/^\s*/, '').replace(/\s*$/, '');
} 

function checkText(form, elementName, displayName) {
  var e = form.elements[elementName];
  if (!strip(e.value)) {
    return "Pole \"" + displayName + "\" není vyplněné.\n";
  }
  return false;
}

function checkTextSize(form, elementName, displayName, minLength) {
  var e = form.elements[elementName];
  if (strip(e.value).length < minLength) {
    return "Pole \"" + displayName + "\" musí mít minimálně " + minLength + " znaků.\n";
  }
  return false;
}

function checkPassword(form, elementName, displayName, elementName2, displayName2) {
  var error = "";
  var result;
  if (result = checkTextSize(form, elementName, displayName, 5)) {
    error += result;
  }
  if (result = checkTextSize(form, elementName2, displayName2, 5)) {
    error += result;
  }
  if (error) {
    return error;
  }
  else {
    var e1 = form.elements[elementName];
    var e2 = form.elements[elementName2];
    if (e1.value != e2.value) {
      return "Hesla sa neshodují.\n";
    }
  }
  return false;
}

function checkEmail(form, elementName, displayName) {
  var result;
  if (result = checkText(form, elementName, displayName)) {
    return result;
  }
  var regex = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i;
  var e = form.elements[elementName];
  if (!regex.exec(e.value)) {
    return "Pole \"" + displayName + "\" nemá správný formát\n";
  }
  return false;
}

function checkInteger(form, elementName, displayName, min, max)
{
  var result;
  if (result = checkText(form, elementName, displayName)) {
    return result;
  }
  var regex = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i;
  var e = form.elements[elementName];
  var i = parseInt(e.value);
  if (isNaN(i) || i < min || i > max) {
    return "Pole \"" + displayName + "\" musí byť z rozsahu " + min + " až " + max + ".\n";
  }
  return false;
}