// ----------------------------------------------------------------------------
// Copyright (C) Krystof Slaby (krystof.slaby@seznam.cz), XPD, 2001-2003
// ----------------------------------------------------------------------------

// checking function
function form_check(form, table) {
  if (!form) { return true; };
  if (!table) { return true; };
  var ok = true;
  for (i = 1; i < table.length; i++) {
    if (form.elements[table[i][0]].disabled) { continue; };
    switch (table[i][1]) {
      case 'v_string':
        if ( (form.elements[table[i][0]].value.length == 0) && (table[i][3]) ) {}
        else if (form.elements[table[i][0]].value.length < table[i][4]) {
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" je příliš krátká (musí mít nejméně ' + table[i][4] + ' znaků).');
          alert('Polozka "' + table[i][2] + '" je prilis kratka (musi mit nejmene ' + table[i][4] + ' znaku).');
          return false;
          }
        else if (form.elements[table[i][0]].value.length > table[i][5]) {
          form.elements[table[i][0]].value = form.elements[table[i][0]].value.substr(0,table[i][5]);
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" je příliš dlouhá (může mít nejvýš ' + table[i][5] + ' znaků).');
          alert('Polozka "' + table[i][2] + '" je prilis dlouha (muze mit nejvys ' + table[i][5] + ' znaku).');
          return false;
          };
        break;
      case 'v_int':
        x = parseInt(form.elements[table[i][0]].value);
        if (isNaN(x)) {
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" musí být celé číslo.');
          alert('Polozka "' + table[i][2] + '" musi byt cele cislo.');
          return false;
          }
        else if (x < table[i][4]) {
          form.elements[table[i][0]].focus();
          // alert('Položka "' + table[i][2] + '" nesmí být menší než  ' + table[i][4] + '.');
          alert('Polozka "' + table[i][2] + '" nesmi byt mensi nez  ' + table[i][4] + '.');
          return false;
          }
        else if (x > table[i][5]) {
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" nesmí být větší než ' + table[i][5] + '.');
          alert('Polozka "' + table[i][2] + '" nesmi byt vetsi nez ' + table[i][5] + '.');
          return false;
          };
        break;
      case 'v_real':
        s = form.elements[table[i][0]].value;
        // (*) orezat mezery, thousandseparatory, decimalseparator zamenit za '.'
        s = s.replace(/ */gi,'');
        y = new RegExp(table[i][6],"gi");
        s = s.replace(y,'.');
        x = parseFloat(s);
        if (isNaN(x)) {
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" musí být číslo.');
          alert('Polozka "' + table[i][2] + '" musi byt cislo.');
          return false;
          }
        else if (x < table[i][4]) {
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" nesmí být menší než ' + table[i][4] + '.');
          alert('Polozka "' + table[i][2] + '" nesmi byt mensí nez ' + table[i][4] + '.');
          return false;
          }
        else if (x > table[i][5]) {
          try { form.elements[table[i][0]].focus(); } catch (any) {};
          // alert('Položka "' + table[i][2] + '" nesmí být větší než ' + table[i][5] + '.');
          alert('Polozka "' + table[i][2] + '" nesmz byt vetsi nez ' + table[i][5] + '.');
          return false;
          };
        break;
      case 'md5':
        form.elements[table[i][0]].value = MD5(table[i][4]+form.elements[table[i][0]].value);
        break;
      };
    };
  return ok;
  }
