// knihovna Javascript funkci pro podporu stranky s vyhledavanim certifikatu uzivatelu

// funkce pro kontrolu vyhledavacich poli "subject certifikatu" a "e-mailova adresa"
function checkSubjectEmail(element,size) {
// element ..... prvek, jehoz hodnota se ma zkontrolovat
// size ........ minimalni delka hodnoty prvku
  test = (element.value.length >= size);
  if (!test) {
    window.alert("The entered value does not have a sufficient number of characters!\nIt is necessary to enter at least "+size+" characters.");
    element.focus();
  } else
    if (element.value.indexOf('*')>=0 || element.value.indexOf('?')>=0) {
      window.alert("The * and ? characters cannot be used for search.\nRemove them from the entered value.");
      element.focus();
      test = false;
    }
  return test;
}

// funkce pro kontrolu, zda zadany string "input" obsahuje jen uvedene znaky v "allowed"
function allowedChars(input,allowed) {
// input ..... string se vstupni hodnotou
// allowed ... string se seznamem povolenych znaku
  retval=true;
  for (i=0;i<input.length;i+=1)
    if (allowed.indexOf(input.charAt(i))==-1) {
      retval=false; break;
    }
  return retval;
}

// funkce pro kontrolu vyhledavaciho pole "seriove cislo certifikatu"
function checkSN(element) {
// element ..... prvek, jehoz hodnota se ma zkontrolovat
  sn = element.value;
  // nejdrive kontrola na uvodni znaky 0x
  if (sn.indexOf("0x")==0) { // melo by se jednat o hexadecimalni cislo
    sn = sn.substring(2); // odrezani uvodnich znaku 0x
    retval = allowedChars(sn,"0123456789abcdefABCDEF");
    err = "Entered value contains illegal characters!\nOnly numbers 0-9 and characters A-F are acceptable.";
  } else { // melo by se jednat o dekadicke cislo
    if (sn=="") { // vstup ale muze byt take prazdny
      retval = false;
      err = "No value has been entered!";
    } else {
      retval = allowedChars(sn,"0123456789");
      err = "Entered value contains illegal characters!\nOnly numbers 0-9 are acceptable.\n\nIf you want to enter a hexadecimal number,\nadd the '0x' prefix.";
    }
  }
  if (!retval) {
    window.alert(err);
    element.focus();
  }
  return retval;
}
