function chkString(elem, len, info)
{
  var field = eval("window.document.dialog." + elem);
  if (field.value.length < len) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }

  return true;
}

function chkNumber(elem, len, info)
{
  var bOk = true;
  var field = eval("window.document.dialog." + elem);
  if (field.value.length < len) { bOk = false; }

  if (bOk == true) {
    for (var i = 0; i < field.value.length && bOk == true; i++) {
      var ch = field.value.charAt(i);
      if (ch < "0" || ch > "9") { bOk = false; }
    }
  }

  if (bOk == false) {
	if (info.length) { alert(info); }
    field.focus();
    return false;
  }	

  return true;
}

function chkEMail(elem, len, info)
{
  var bOk = true;
  var field = eval("window.document.dialog." + elem);
  if (field.value.length < len) { bOk = false; }
	
  if (bOk == true) {
    if ((field.value.indexOf('@') == -1) || (field.value.indexOf('.') == -1)) { bOk = false; }
  }
	
  if (bOk == false) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }	

  return true;
}  

function chkSelect(elem, info)
{
  var field = eval("window.document.dialog[\"" + elem + "\"]");
  if (field.selectedIndex == 0) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }

  return true;
}

function chkSelectMulti(elem, info)
{
  var field = eval("window.document.dialog[\"" + elem + "\"]");
  if (field.selectedIndex == -1) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }

  return true;
}

function chkNumberMinMax(elem, min, max, info)
{
  var field = eval("window.document.dialog." + elem);
  var bOk = chkNumber(elem, 1, "");
  if ( (bOk == false) || (field.value < min) || (field.value > max) ) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }

  return true;
}

function chkNumberMin(elem, min, info)
{
  var field = eval("window.document.dialog." + elem);
  var bOk = chkNumber(elem, 1, "");
  if ( (bOk == false) || (field.value < min) ) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }

  return true;
}

function chkNumberMax(elem, max, info)
{
  var field = eval("window.document.dialog." + elem);
  var bOk = chkNumber(elem, 1, "");
  if ( (bOk == false) || (field.value > max) ) {
    if (info.length) { alert(info); }
    field.focus();
    return false;
  }

  return true;
}

function chkChecked(elems)
{
  for (var i = 0; i < elems.length; i++) {
    var field = eval("window.document.dialog." + elems[i]);
		if ((field.checked == true) || (field.checked == 1)) { return true; }
  }

  return false;
}           

function chkDate(elem, info)
{
  var bOk = true;
  var field = eval("window.document.dialog." + elem);
  
  if (bOk == true) {
    var parts = field.value.split(".");
	if (parts.length != 3) { bOk = false; }
  }
  
  if (bOk == true) {
	var day   = parseInt(parts[0]);
	var month = parseInt(parts[1]);
	var year  = parseInt(parts[2]);
	  
	if (day < 1 || day > 31) { bOk = false; }
	if (month < 1 || month > 12) { bOk = false; }
	if (year < 1000 || year > 9999) { bOk = false; }
  }
  
  if (bOk == true) {
    var days = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if ( (month == 2) && ( year % 4 == 0 && !(year % 100 == 0 && year % 400 != 0) ) ) {
	    days[2] = 29;
	}
	if (day > days[month]) { bOk = false; }
  }
  
  if (bOk == false) {
	if (info.length) { alert(info); }
    field.focus();
    return false;
  }	

  return true;
}

