function isTextLongEnough(field,min,desc) {
  if (field.value.length < min) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}


function isTextShortEnough(field,max,desc) {
  if (field.value.length > max) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}


function isTextValidLength(field,min,max,desc) {
  if (field.value.length < min || field.value.length > max) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
	field.select();
    return (false);
  }
  return (true);
}


function isAlpha(field,desc) {
  format = new RegExp("^[a-zA-Z\ ]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}


function isAlphaNumeric(field,desc) {
  format = new RegExp("^[a-zA-Z0-9\ ]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}



function ValidateRadio(radiofield,desc,numberOfOptions){
  anychecked = false;
  try {
	  for (j=0;j < numberOfOptions;j++) {
		if (radiofield[j].checked) {
		  anychecked = true;
		  break;
		}
	  }
  } catch (OException){
    anychecked = false;
  }

  if (!anychecked) {
    alert("Please select one of the available options for the \"" + desc + "\" field.");
    return (false);
  }
  return (true);
}


function ValidatePassword(textfield,desc,min,max){
format = new RegExp("^[a-zA-Z0-9]{"+min+","+max+"}$");
if (!format.test(textfield.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    textfield.focus();
    return (false);
  }
  return (true);
}



function ValidatePhone(phonefield,desc){
format = new RegExp("^[0-9\(\)\ \+]{7,}$");
if (!format.test(phonefield.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    phonefield.focus();
    return (false);
  }
  return (true);

}

function isEmail(emailfield,desc){
  format = new RegExp("^[a-zA-Z0-9\.\_\-]{1,}[/@]{1}[a-zA-Z0-9\.\_\-]{1,}[/.]{1}[a-zA-Z0-9\.\_]{1,}$");
  if (!format.test(emailfield.value)) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    emailfield.focus();
    return (false);
  }
  return (true);
}


function ValidateNotEmpty(field,desc){
  if (field.value=="") {
    alert("Please fill in the \"" + desc + "\" field.");
    field.focus();
	field.select();
    return (false);
  }
  return (true);
}


function isNZDate(field,desc){
  format = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$");
  if (!format.test(field.value)) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
	field.select();
    return (false);
  }
  return (true);
}


//**********************************************************************

// allows empty date. allowempty=true
function checkDate(field,desc) {
	
	if (field.value.length<6 && field.value.length>0) {
	  alert("That date entered in the \"" + desc + "\" field is invalid.  Please reenter the date.");
	  field.focus();
	  field.select();
	  return false;
	}
	
	if (chkdate(field) == false) {
		alert("That date entered in the \"" + desc + "\" field is invalid.  Please reenter the date.");
		field.focus();
		field.select();
		return false;
	} else {
		return true;
	}
}

// not sure if overloading works. - same as checkDate but with allowempty.
function checkValidDate(field,desc,allowEmpty) {
    
	if (allowEmpty && (field.value=="")) {
      return (true);
    }
	
	if (field.value.length<6) {
	  alert("That date entered in the \"" + desc + "\" field is invalid.  Please reenter the date.");
	  field.focus();
	  field.select();
	  return false;
	}
	
	if (chkdate(field) == false) {
		alert("That date entered in the \"" + desc + "\" field is invalid.  Please reenter the date.");
		field.focus();
		field.select();
		return false;
	} else {
		return true;
	}
}

//***********************************************

function chkdate(field) {
	//var strDatestyle = "US"; //United States date style
	var strDatestyle = "EU";  //European date style
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = field;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	strDate = datefield.value;
	if (strDate.length < 1) {
		return true;
	}
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1;
				return false;
			} else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}
	if (booFound == false) {
		if (strDate.length>5) {
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
    	}
	}
	if (strYear.length == 2) {
		strYear = '20' + strYear;
	}
	
	// US style
	//if (strDatestyle == "US") {
	//strTemp = strDay;
	//strDay = strMonth;
	//strMonth = strTemp;
	//}
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) {
		err = 2;
		return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
	   		}
		}
		if (isNaN(intMonth)) {
			err = 3;
			return false;
	   	}
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		} else {
			if (intday > 28) {
				err = 10;
				return false;
			}
		}
	}
	
	if (intYear<1701 || intYear>9999){
	  err = 4;
	  return false;
	}
	
	if (strDatestyle == "US") {
		datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
	} else {
		//datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
	    datefield.value = intday + "/" + intMonth + "/" + strYear;
	}
	return true;
}

function LeapYear(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) { return true; }
  } else {
    if ((intYear % 4) == 0) { return true; }
  }
  return false;
}

//******************************************************
function ensureFutureDate(field,desc){
  // this assumes a date in the format dd/mm/yyyy
  var currentDate = new Date();
  var enteredDate = new Date(); 

  var strDateArray = field.value.split("/");
  day = strDateArray[0];
  month = strDateArray[1];
  year = strDateArray[2];
  enteredDate.setMonth(month-1);
  enteredDate.setYear(year);
  enteredDate.setDate(day);

  if (currentDate>enteredDate) {
    alert("Please enter a valid date value for the \"" + enteredDate+" "+month+" "+year+" "+desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}

//format = new RegExp("^\Jan{1}|Feb{1}|Mar{1}|Apr{1}|May{1}|Jun{1}|Jul{1}|Aug{1}|Sep{1}|Oct{1}|Nov{1}|Dec{1}\ {1}[0-9]{1,2}\,{1}\ {1}[0-9]{4}$");
  
function ensurePastOrPresentDate(field,desc){
  // this assumes a date in the format dd/mm/yyyy
  var currentDate = new Date();
  var enteredDate = new Date(); 

  var strDateArray = field.value.split("/");
  day = strDateArray[0];
  month = strDateArray[1];
  year = strDateArray[2];
  enteredDate.setMonth(month-1);
  enteredDate.setYear(year);
  enteredDate.setDate(day);

  if (currentDate < enteredDate) {
    alert("Please enter a valid date value for the \"" + enteredDate+" "+month+" "+year+" "+desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}

function isntZero(field,desc) {
  if (field.value==0) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true); 
}

function isntZeroNoFocus(field,desc) {
  if (field.value==0) {
    alert("Please select an item from the \"" + desc + "\" field.");
    //field.focus();
    return (false);
  }
  return (true); 
}

// deprecated - use isNumber
function isNumeric(field,desc) {
  format = new RegExp("^[0-9\ ]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}


function chkWholeNum(valueToChk, fielddesc){
	var strSearch;
	var i;
	var iCharFound;
	var strTxtSrc;
	var strChar;

	strTxtSrc = valueToChk.value.toUpperCase();
	strSearch = 'ABCDFGHIJKLMOPQRSUVWXYZ.,!@#$%^&*_+-={}[]|\:;"<>?/' + String.fromCharCode(39); 

	for( i=0; i < strTxtSrc.length; i++ ) {
		strChar = strTxtSrc.charAt(i);
		iCharFound = strSearch.indexOf( strChar );
		if( iCharFound > -1 ){
			alert('Please enter only whole numbers for the "'+ fielddesc +'" field (excluding "," or ".").');
			valueToChk.focus();
			return false;
		}
	}
	return true;
}


function isDecimal(field,desc) {
  format = new RegExp("^[0-9\ \.]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}

// deprecated - use isMonetary
function isMoney(field,desc) {
  if (field.disabled==true) { return (true); }  
  var pattern="";
  if (field.value.indexOf(".")!=-1) {
    pattern = "^[\$]?[0-9\,]{1,7}\.{1}[0-9]{2}$";
  } else {
    pattern = "^[\$]?[0-9\,]{1,7}$";
  }
  format = new RegExp(pattern);
  if (!format.test(field.value)) 
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}


function isPercent(field,desc,dp) {
  if (field.disabled==true) { return (true); }
  var val=field.value;
  var pattern="";
  if (val.indexOf(".")==-1) {
    pattern = "^[0-9]{1,2}$";
  } else {
    pattern = "^[0-9]{1,2}\.{1}[0-9]{1,"+dp+"}$";
  }
  format = new RegExp(pattern);
  if (!format.test(val)) {
    alert("Please enter a valid value for the "+desc+" Percentage to " + dp + " Decimal Places");
    field.focus();
    field.select();
    return (false);
  }
  return (true);
}

function toDP(field,desc,dp) {
  if (field.disabled==true) { return (true); }
  var val=field.value;
  var pattern="";
  if (val.indexOf(".")==-1) {
    pattern = "^[0-9]{1,}$";
  } else {
    pattern = "^[0-9]{1,}\.{1}[0-9]{1,"+dp+"}$";
  }
  format = new RegExp(pattern);
  if (!format.test(val)) {
    alert("Please enter a valid value in the "+desc+" field to " + dp + " Decimal Places");
    field.focus();
    field.select();
    return (false);
  }
  return (true);
}


function isLessOrEqualTo(field1,field2,desc) {
  if (field1.disabled==true) { return (true); }
  if (field2.disabled==true) { return (true); }
  one = parseFloat(field1.value);
  two = parseFloat(field2.value);
  if (one > two) {
	alert("Please enter a valid value for the \""+desc+"\" field.");
	field2.focus();
    field2.select();
	return (false);
  }
  return (true);
}


function isLessThan(field1,field2,desc) {
  if (field1.disabled==true) { return (true); }
  if (field2.disabled==true) { return (true); }
  one = parseFloat(field1.value);
  two = parseFloat(field2.value);
  if (one >= two) {
	alert("Please enter a valid value for the \""+desc+"\" field.");
	field2.focus();
    field2.select();
	return (false);
  }
  return (true);
}


function isGreaterThan(field1,field2,desc) {
  if (field1.disabled==true) { return (true); }
  if (field2.disabled==true) { return (true); }
  one = parseFloat(field1.value);
  two = parseFloat(field2.value);
  if (one <= two) {
	alert("Please enter a valid value for the \""+desc+"\" field.");
	field2.focus();
    field2.select();
	return (false);
  }
  return (true);
}


function isGreaterOrEqualTo(field1,field2,desc) {
  if (field1.disabled==true) { return (true); }
  if (field2.disabled==true) { return (true); }
  one = parseFloat(field1.value);
  two = parseFloat(field2.value);
  if (one < two) {
	alert("Please enter a valid value for the \""+desc+"\" field.");
	field2.focus();
    field2.select();
	return (false);
  }
  return (true);
}


function isLess(field1,num,desc) {
  if (field1.disabled==true) { return (true); }
  
  one = parseFloat(field1.value);
  two = parseFloat(num);
  if (one >= two) {
	alert("The \""+desc+"\" field is not less than " + num);
	field1.focus();
    field1.select();
	return (false);
  }
  return (true);
}


function isGreater(field1,num,desc) {
  if (field1.disabled==true) { return (true); }
  
  one = parseFloat(field1.value);
  two = parseFloat(num);
  if (one <= two) {
	alert("The \""+desc+"\" field is not greater than " + num);
	field1.focus();
    field1.select();
	return (false);
  }
  return (true);
}


function isLessEqual(field1,num,desc) {
  if (field1.disabled==true) { return (true); }
  
  one = parseFloat(field1.value);
  two = parseFloat(num);
  if (one > two) {
	alert("The \""+desc+"\" field is not less than or equal to " + num);
	field1.focus();
    field1.select();
	return (false);
  }
  return (true);
}


function isGreaterEqual(field1,num,desc) {
  if (field1.disabled==true) { return (true); }
  
  one = parseFloat(field1.value);
  two = parseFloat(num);
  if (one < two) {
	alert("The \""+desc+"\" field is not greater than or equal to " + num);
	field1.focus();
    field1.select();
	return (false);
  }
  return (true);
}

function fieldsEqual(field1,field2,desc) {
  if (field1.disabled==true) { return (true); }
  if (field2.disabled==true) { return (true); }
  var s1 = field1.value;
  var s2 = field2.value;
  if (s1!=s2) {
    alert("The \""+desc+"\" fields are not the same");
	field1.focus();
	field1.select();
	return (false);
  }
  return (true);
}

function beginsWithCaps(field,desc,allowEmpty) {
  if (allowEmpty && (field.value=="")){
    return (true);
  }
  if (field.disabled==true) { return (true); }
  //format = new RegExp("^[a-zA-Z0-9\.\_]{1,}[/@]{1}[a-zA-Z0-9\.\_]{1,}[/.]{1}[a-zA-Z0-9\.\_]{1,}$");
  format = new RegExp("^[A-Z]{1}[A-Za-z]{1,}$");
  if (!format.test(field.value)) {
    alert("The String entered in the \"" + desc + "\" field must begin with a capital letter.");
    field.focus();
    field.select();
	return (false);
  }
  return (true);

}

function noUpperCase (field,desc) {
  var exp = "^[^A-Z]+$";
  reg = new RegExp(exp);
  if (reg.test(field.value)) {
      alert("The \"" + desc + "\" field is all lowercase. Please ensure correct title case.");
      field.focus();
	  field.select();
      return (true);
  }
  return (false);
}

function noLowerCase (field,desc) {
  var exp = "^[^a-z]+$";
  reg = new RegExp(exp);
  if (reg.test(field.value)) {
      alert("The \"" + desc + "\" field is all uppercase. Please ensure correct title case.");
      field.focus();
	  field.select();
      return (true);
  }
  return (false);
}

function titleCase(field,desc,allowEmpty) {
  if (field.disabled==true) {return (true);}
  
  if (allowEmpty && (field.value=="")){
    return (true);
  }
  
  if (!isTextLongEnough(field,1,desc)) {return (false);}
  if (noLowerCase(field,desc)) {return (false);}
  if (noUpperCase(field,desc)) {return (false);}
  
  return (true);

}

function isFilenameExcExtensionNoSpaces(field,desc) {
  format = new RegExp("^[-a-zA-Z0-9_]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
	field.select();
    return (false);
  }
  return (true);
}

function isFilenameExcExtensionAllowSpaces(field,desc) {
  format = new RegExp("^[-a-zA-Z0-9_ ]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
	field.select();
    return (false);
  }
  return (true);
}

function leavedigits(str){
  var leng = str.length;
  var result ="";
  for (var i=0;i<leng;i++) {
    var ascii = str.charCodeAt(i);
	if (ascii>=48 && ascii<=57) {
	  result = result + str.substring(i,i+1);
	}
  }
  return result;
}

function leavedigitsanddecimalpoint(str){
  var leng = str.length;
  var result ="";
  for (var i=0;i<leng;i++) {
    var ascii = str.charCodeAt(i);
	if ((ascii>=48 && ascii<=57) || ascii==46) {
	  result = result + str.substring(i,i+1);
	}
  }
  return result;
}

function validatePhoneTwoParts(prefixfield,suffixfield,desc,allowEmpty){
  // allow it if both fields are empty and allowEmpty = true;
  if (allowEmpty && (prefixfield.value=="") && (suffixfield.value=="")) {
    return (true);
  }
  
  // strip out all but the numbers.
  var prefixString = leavedigits(prefixfield.value);
  if (prefixString.length<1 || prefixString.length>4) {
    alert("Please enter a valid number in the \"" + desc + "\" field.");
    prefixfield.focus();
    return (false);
  }
  
  // strip out all but the numbers. - a six or seven digit number.
  var suffixString = leavedigits(suffixfield.value);
  if (suffixString.length<6 || suffixString.length>7) {
    alert("Please enter a valid number in the \"" + desc + "\" field.");
    suffixfield.focus();
    return (false);
  }
  
  // force correction of string.
  prefixfield.value=prefixString;
  suffixfield.value=suffixString;
  
  return (true);

}

function validatePhoneSuffix(suffixfield,desc,allowEmpty){
  // allow it if suffixfield is empty and allowEmpty = true;
  if (allowEmpty && (suffixfield.value=="")) {
    return (true);
  }
  
  // strip out all but the numbers. - a six or seven digit number.
  var suffixString = leavedigits(suffixfield.value);
  if (suffixString.length<6 || suffixString.length>7) {
    alert("Please enter a valid number in the \"" + desc + "\" field.");
    suffixfield.focus();
    return (false);
  }
  
  // force correction of string.
  suffixfield.value=suffixString;
  
  return (true);

}

function isWebAddress(field,desc,allowEmpty) {

  if (allowEmpty && (field.value=="")) {
    return (true);
  }
  
  // need to strip http:// if it is in here.
  var x = field.value;
  if (x.indexOf("http://")==0){
    field.value = x.substring(7);
  }
  
  //format = new RegExp("^[a-zA-Z0-9\.\_]{1,}[/@]{1}[a-zA-Z0-9\.\_]{1,}[/.]{1}[a-zA-Z0-9\.\_]{1,}$");
  // use \( to start a subexpression and \) to end it. \? means the preceeding thing is optional 
  //format = new RegExp("^\(www\.\)\?[A-Za-z\_\-\~]{1,}[\.]{1}[A-Za-z\_\-\~]{1,}$");
  
  format = new RegExp("^\(www\.\)\?[A-Za-z\_\-\~]{1,}[\.]{1}[A-Za-z\_\-\~\.\/]{1,}$");
  if (!format.test(field.value)) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  return (true);
}

function isValidEmail(emailfield,desc,allowEmpty){
  if (allowEmpty && (emailfield.value=="")) {
    return (true);
  }
  
  format = new RegExp("^[a-zA-Z0-9\.\_\-]{1,}[/@]{1}[a-zA-Z0-9\.\_\-]{1,}[/.]{1}[a-zA-Z0-9\.\_]{1,}$");
  if (!format.test(emailfield.value)) {
    alert("Please fill in the \"" + desc + "\" field with a valid email address.");
    emailfield.focus();
    return (false);
  }
  return (true);
}

function enoughCharacters(field,min,desc,allowEmpty) {
  if (allowEmpty && (field.value=="")) {
    return (true);
  }
  if (field.value.length < min) {
    alert("The \"" + desc + "\" field must be at least "+min+" characters long.");
    field.focus();
	field.select();
    return false;
  }
  return true;
}

function isNumber(field,desc,allowEmpty) {
  if (allowEmpty && (field.value=="")) {
    return (true);
  }
  format = new RegExp("^[0-9\ ]{1,}$");
  if (!format.test(field.value))
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
	field.select();
    return (false);
  }
  return (true);
}

// leaves only numeric and . if a valid monetary amount.
function isMonetary(field,desc,allowEmpty) {
  
  if (allowEmpty && (field.value=="")) {
    return (true);
  }

  if (field.disabled==true) { return (true); }  
  var pattern="";
  if (field.value.indexOf(".")!=-1) {
    pattern = "^[\$]?[0-9\,]{1,7}\.{1}[0-9]{2}$";
  } else {
    pattern = "^[\$]?[0-9\,]{1,7}$";
  }
  format = new RegExp(pattern);
  if (!format.test(field.value)) 
  {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
    field.focus();
    return (false);
  }
  
  // force correction of string.
  field.value = leavedigitsanddecimalpoint(field.value);
  
  return (true);
}

function isValidDP(field,desc,dp,allowEmpty) {
  
  if (allowEmpty && (field.value=="")) {
    return (true);
  }
  
  if (field.disabled==true) { return (true); }
  var val=field.value;
  var pattern="";
  if (val.indexOf(".")==-1) {
    pattern = "^[0-9]{1,}$";
  } else {
    pattern = "^[0-9]{1,}\.{1}[0-9]{1,"+dp+"}$";
  }
  format = new RegExp(pattern);
  if (!format.test(val)) {
    alert("Please enter a valid value in the "+desc+" field to " + dp + " Decimal Places");
    field.focus();
    field.select();
    return (false);
  }
  return (true);
}

function validPhonePattern(field,desc,allowEmpty){

  if (allowEmpty && (field.value=="")) {
    return (true);
  }
  
  format = new RegExp("^[0-9\(\)\ \+\-]{7,}$");
  if (!format.test(field.value)) {
    alert("Please enter a valid value for the \"" + desc + "\" field.");
	field.focus();
	field.select();
	return (false);
  }
  return (true);
	
}

function isWholeNum(field, fielddesc,allowEmpty){

    if (allowEmpty && (field.value=="")) {
      return (true);
    }
	
	var strSearch;
	var i;
	var iCharFound;
	var strTxtSrc;
	var strChar;

	strTxtSrc = field.value.toUpperCase();
	strSearch = 'ABCDFGHIJKLMOPQRSUVWXYZ.,!@#$%^&*_+-={}[]|\:;"<>?/' + String.fromCharCode(39); 

	for( i=0; i < strTxtSrc.length; i++ ) {
		strChar = strTxtSrc.charAt(i);
		iCharFound = strSearch.indexOf( strChar );
		if( iCharFound > -1 ){
			alert("Please enter only whole numbers for the \"" + fielddesc + "\" field (excluding \",\" or \".\").");
			field.focus();
			field.select();
			return false;
		}
	}
	return true;
}

function otherCheck(field,otherfield,valueOfOther,desc,allowEmpty){ 
  if (allowEmpty && (field.value=="" || field.value=="0")) {
    return (true);
  }
  
  if (field.value==valueOfOther){
    if (!ValidateNotEmpty(otherfield,desc)){ return (false);}
	return (true);
  }
  if (field.value=="" || field.value=="0"){
    alert("Please make a selection from the \"" + desc + "\" field.");
	field.focus();
	//field.select();
    return (false);
  }
  return (true);
}
  
  
function itemSelected(field,desc){
  if (field.value=="" || field.value=="0"){
    alert("Please make a selection from the \"" + desc + "\" field.");
	field.focus();
	return (false);
  }
  return (true);
}

 // trim off white spaces
function trim(txt){
	txt = txt.replace(/^\s*(\b.*\b|)\s*$/, "$1");
	return txt;
}
  
function fmt00(x){
 // fmt00: Tags leading zero onto numbers 0 - 9.
 // Particularly useful for displaying results from Date methods.
 if (parseInt(x) < 0) var neg = true;
 if (Math.abs(parseInt(x)) < 10){
 	x = "0"+ Math.abs(x);
 }
 if (neg) x = "-"+ x;
 return x;
}
