function IsDate(dateToTest,fieldName,dateFormatString) {
  if (dateToTest.value == "") {return true}
  var dateParse = new Date(dateToTest.value);
  var dateString = new String(dateToTest.value);
  var dateFormatString = new String(dateFormatString);
  if (dateParse == "NaN") {
    alert(fieldName + " format is invalid.\nUse " + dateFormatString + " or dd mmm yyyy.");
    dateToTest.value = "";
    return false;
  }
  else if (dateString.indexOf("/") > 0) {
    var datePieces = new Array();
    var monthpiece = 0;
    var daypiece = 0;
    var monthString = "04,06,09,11";
    datePieces = dateString.split("/");
    if (dateFormatString == "dd/mm/yyyy") {
      monthPiece = datePieces[1];
      dayPiece = datePieces[0];
    }
    else {
      monthPiece = datePieces[0];
      dayPiece = datePieces[1];
    }
    if (monthPiece > 12) {
      alert(fieldName + " format is invalid.\nUse " + dateFormatString + " or dd mmm yyyy.");
      dateToTest.value = "";
      return false;
    }
    else if (dayPiece > 31 || dayPiece < 1 || monthPiece < 1) {
      alert(fieldName + ": " + dateString + " is invalid.\nPlease try again.\n(Use " + dateFormatString + " or dd mmm yyyy.)");
      dateToTest.value = "";
      return false;
    }
    else if (monthPiece == 2 && dayPiece > 29) {
      alert(fieldName + ": " + dateString + " is invalid.\nPlease try again.\n(Use " + dateFormatString + " or dd mmm yyyy.)");
      dateToTest.value = "";
      return false;
    }
    else if (monthPiece > 1 && monthString.indexOf(String(monthPiece)) > 0 && dayPiece > 30) {
      alert(fieldName + ": " + dateString + " is invalid.\nPlease try again.\n(Use " + dateFormatString + " or dd mmm yyyy.)");
      dateToTest.value = "";
      return false;
    }
    return true;
  }
}
function CheckFloat(testField) {
  var testNum = testField.value;
  if (testNum != "" && isNaN(parseFloat(testNum))) {
    alert("'" + testNum + "' is not a valid number.\nPlease try again.");
    testField.value = "";
    return false;
  }
  testField.value = parseFloat(testNum);
  return true;
}
function CheckInteger(testField) {
  if (CheckFloat(testField)) {
    var testNum = testField.value;
    if (testNum != 0 && testNum != "") {
      var intvalue = parseInt(testNum)/parseFloat(testNum);
      if (parseFloat(intvalue) != 1) {
        alert("'" + testNum + "' is not valid.\nYou must enter a whole number.\nPlease try again.");
        testField.value = "";
        return false;
      }
    }
    testField.value = parseInt(testNum);
    return true;
  }
}
function IsFormElement(testElement) {
	if (testElement == null) {
		return false;
	}
	if (typeof(testElement) == "undefined") {
		return false;
	}
	return true;
}
