/* Ajax - zestaw narzędzi */
/* Funkcje do sprawdzania poprawności */

function validateNonEmpty(inputControl, helpControl) {
  // Sprawdź czy pole zawiera jakikolwiek tekst
  return validateRegEx(/.+/,
    inputControl.value, helpControl,
    "Proszę wprowadzić wartość.");
}

function validateImie(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić imię (np. Robert).");
}

function validateLogin(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić login (np. Bogu).");
}

function validateHaslo(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić haslo (np. shouted12).");
}

function validateHasloDwa(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić potwórzone haslo (np. shouted12).");
}

function validateNazwisko(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić nazwisko (np. Nowak).");
}

function validateMiasto(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9ąĄćĆśŚńŃóÓęĘłŁ])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić miasto (np. Warszawa).");
}

function validateUlica(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9ąĄćĆśŚńŃóÓęĘłŁ\ \_\.\-])+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić ulicę (np. 3-go maja).");
}

function validateKodPocztowy(inputControl, helpControl) {
  return validateRegEx(/^(([0-9]){2,3})+\-(([0-9]){3,5})+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić kod pocztowy (np. 32-111).");
}

function validateInteger(inputControl, helpControl) {
  // Najpierw sprawdź czy pole zawiera dane
  if (!validateNonEmpty(inputControl, helpControl))
    return false;

  // Następnie sprawdź czy w polu wpisana jest liczba całkowita
  return validateRegEx(/^[-]?\d*$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić liczbę całkowitą.");
}

function validateNumber(inputControl, helpControl) {
  // Najpierw sprawdź czy pole zawiera dane
  if (!validateNonEmpty(inputControl, helpControl))
    return false;

  // Potem sprawdź czy w polu wpisana jest liczba
  return validateRegEx(/^[-]?\d*\.?\d*$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić liczbę.");
}

function validatePhone(inputControl, helpControl) {
  // Najpierw sprawdź czy pole zawiera dane
  if (!validateNonEmpty(inputControl, helpControl))
    return false;

  // Potem sprawdź czy w polu wpisany jest numer telefonu
  return validateRegEx(/^\d{3}-\d{3}-\d{4}$/,
    inputControl.value, helpControl,
    "Prosze wprowadzić numer telefonu (na przykład, 123-456-7890).");
}

function validateEmail(inputControl, helpControl) {
  return validateRegEx(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
    inputControl.value, helpControl,
    "Proszę wprowadzić adres e-mail (np. bok@shouted.pl).");
}

function validateRegEx(regex, input, helpControl, helpMessage) {
  if (!regex.test(input)) {
    if (helpControl != null)
      helpControl.innerHTML = helpMessage;
    return false;
  }
  else {
    if (helpControl != null)
      helpControl.innerHTML = "";
    return true;
  }
}
