function nameValida(name) {
  var res = /^[A-Za-z ]+$/g,
    val = name.match(res);

  if (!val)
    return false;

  return true;
}

function apeValida(name) {
  var res = /^[A-Za-z ]+$/g,
    val = name.match(res);

  if (!val)
    return false;

  return true;
}

function validarName(input) {
  var name = input.value,
    resultadoName = document.getElementById("resultadoName"),
    val = "Únicamente se aceptan letras y espacios para el nombre";
  resultadoName.style.color = 'red';

  if (nameValida(name)) {
    val = "Nombre válido";
    resultadoName.style.color = 'green';
    resultadoName.classList.add("ok");
    document.getElementById('btnReg').disabled=false;
  } else {
    resultadoName.classList.remove("ok");
    document.getElementById('btnReg').disabled=true;
  }
  resultadoName.innerText = val;
}

function validarApe(input) {
  var ape = input.value,
    resultadoApe = document.getElementById("resultadoApe"),
    val = "Únicamente se aceptan letras y espacios para el apellido";
  resultadoApe.style.color = 'red';

  if (apeValida(ape)) {
    val = "Apellido válido";
    resultadoApe.style.color = 'green';
    resultadoApe.classList.add("ok");
    document.getElementById('btnReg').disabled=false;
  } else {
    resultadoName.classList.remove("ok");
    document.getElementById('btnReg').disabled=true;
  }
  resultadoApe.innerText = val;
}


function passValida(pass) {
  var res = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&#.$($)$-$_])[A-Za-z\d$@$!%*?&#.$($)$-$_]{8,}$/;
    val = pass.match(res);

  if (!val)
    return false;

  return true;
}

function validarPass(input) {
  var pass = input.value,
    resultadoPwd = document.getElementById("resultadoPwd"),
    val = "La contraseña debería tener al menos 8 caracteres, 1 dígito, 1 minúscula, 1 MAYÚSCULA, 1 caracter no-alfanumérico como . $ ? / * - + # @";
  resultadoPwd.style.color = 'red';

  if (passValida(pass)) {
    val = "Contraseña válida";
    resultadoPwd.style.color = 'green';
    resultadoPwd.classList.add("ok");
    document.getElementById('btnReg').disabled=false;
  } else {
    resultadoPwd.classList.remove("ok");
    document.getElementById('btnReg').disabled=true;
  }

  resultadoPwd.innerText = val;
}

function matchValida(matchPwd) {
  var res = document.getElementById("txtPass").value;
    val = (matchPwd == res);

  if (!val)
    return false;

  return true;
}

function validarPassMatch(input) {
  var matchPwd = input.value,
    resultadoPwdMatch = document.getElementById("resultadoPwdMatch"),
    val = "Las contraseñas no coinciden";
  resultadoPwdMatch.style.color = 'red';

  if (matchValida(matchPwd)) {
    val = "Las contraseñas coinciden";
    resultadoPwdMatch.style.color = 'green';
    resultadoPwdMatch.classList.add("ok");
    document.getElementById('btnReg').disabled=false;
  } else {
    resultadoPwdMatch.classList.remove("ok");
    document.getElementById('btnReg').disabled=true;
  }

  resultadoPwdMatch.innerText = val;
}

function usernameValida(username) {
  var res = /^[a-z0-9_\-\@\.]+$/g,
    val = username.match(res);

  if (!val)
    return false;

  return true;
}

function validarUsername(input) {
  var username = input.value,
    resultadoUsername = document.getElementById("resultadoUsername"),
    val = "El nombre de usuario solamente puede contener caracteres alfanuméricos en minúsculas, (letras y números), subrayado (_), guión (-), punto (.) o arroba (@).";
  resultadoUsername.style.color = 'red';

  if (usernameValida(username)) {
    val = "Nombre de usuario válido";
    resultadoUsername.style.color = 'green';
    resultadoUsername.classList.add("ok");
    document.getElementById('btnReg').disabled=false;
  } else {
    resultadoUsername.classList.remove("ok");
    document.getElementById('btnReg').disabled=true;
  }

  resultadoUsername.innerText = val;
}