
function isInvalidField(frm, fname) {
  var elem=frm.elements[fname];
//  alert(elem.type);
  if(elem.type && elem.type.indexOf("select")>-1) {
	return elem.selectedIndex<1;
  }
  var val=new String(frm.elements[fname].value);
  return val.length<1;
}

function isValidForm(frm) {
  var fldName = null;
  fields = buildFieldArray();
  if(fields.length < 1) {
  	return null;
  }
//  alert('isValidForm() - ' + fields.length + ' entries' );
  var r = false;
  for(var i=0; i<fields.length; i++) {
    fldName = fields[i][0];
    if(fields[i].length == 2) {     
      r = isInvalidField(frm, fldName);
    }
    else if(fields[i].length == 3) {
      var res = null;
      f = "res="+fields[i][2]+"('"+fields[i][0]+"');";
//	  alert('isValidForm() - call: [' + f +']' );
      eval(f);
//	  alert('isValidForm() - after call:  res=[' + res +']' );
      r = res != null;
      if(r) {
        fields[i][1]=res;
      }
    }
    if(r) {
      alert(fields[i][1]);
      return fldName;
    }
  }
  fldName = null;
  return fldName;
}

function doSubmit(frm) {
// disable duplicate submission
//  alert("doSubmit(): start ");

  var res = isValidForm(frm);

//  alert("doSubmit(): " + res);

  if(res == null) {
    return true;
  }
  else if(res!= null){
    if(frm.elements[res].focus) {
      frm.elements[res].focus();
    }
    else if(frm.elements[res].length>1 && frm.elements[res][0].focus) {
      frm.elements[res][0].focus();
    }
  }

  return false;
}


function compareString(s1, s2) {
	if(s1 && s2 && s1.length && s2.length && s1.length == s2.length) {
		for(var i=0, n=s1.length; i<n; i++) {
			var c = s1.charAt(i);
			var c1 = s2.charAt(i);
			if(c != c1) {
				alert(i + "  " + c + " != " + c1);
				return false;
			}
		}
		return true;
	}
	return false;
}