// Text Field Validation Functions
// copyright Stephen Chapman, 26th Dec 2004
// you may copy this function but please keep the copyright notice with it
function stripBlanks(fld) {
var result = "";
var c = 0;
for (i=0; i<fld.length; i++) {
  if (fld.charAt(i) != " " || c > 0) {
    result += fld.charAt(i);
    if (fld.charAt(i) != " ") c = result.length;
    }
  }
return result.substr(0,c);
}

var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function isValid(parm,val) {
  if (parm == "") return true;
  for (i=0; i<parm.length; i++) {
    if (val.indexOf(parm.charAt(i),0) == -1) return false;
  }
  return true;
}

function isNumber(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}
function isDecimal(parm) {return isValid(parm,numb+'.');}

function oneOnly(parm,chr,must) {
var atPos = parm.indexOf(chr,0);
if (atPos == -1) {return !must;}
if (parm.indexOf(chr, atPos + 1) > - 1) {return false;}
return true; }

function adjacent(parm,chrs) {
return(parm.indexOf(chrs,0) != -1);
}

function onlyAdjacent(parm,comb,chrs) {
var a = parm.split(comb);
var b = a.join('');
for (i=0; i<parm.length; i++) {
    if (val.indexOf(parm.charAt(i),0) != -1) return false;
  }
return true; }

function setOrder(parm,first,second) {
var pos1 = parmField.indexOf(first,0);
if (pos1 == -1) return false; // first char not found
var pos2 = parmField.indexOf(second,pos1+1);
if (pos2 == -1) return false; // second char doesn't follow first
return true; }

function setDistance(parm,first,last,min,max) {
var pos1 = first == '' ? 0 :
parmField.indexOf(first,0);
var pos2 = last == '' ? parmField.length - pos1 - 1 :
parmField.indexOf(second,pos1+1);
if (pos1 == -1) return false;
if (pos2 < min || pos2 > max) return false;
return true; }

function endOption(fld,val) {
return fld.substring(fld.lastIndexOf(val)) == val;
}
                  
			
			function stripBlanks(fld) {
var result = "";
var c = 0;
for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {
result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;
}
}
return result.substr(0,c);
}
			
			
				  function validField(fld) {
fld = stripBlanks(fld);
if (fld == '') return false;
// other validations for this field to be added here
return true;
}