function isEmailAddress(poField, psCaption) {
	re = /.+@.+\..+/ ;
							
	if (!re.test(poField.value)) {
		alert(psCaption);
		poField.focus();
		return false;
	} else
		return true;
}

function isNotBlank(poField, psMessage) {
	
	if (poField.value.length == 0) {
		if (trim(psMessage).length > 0)
			alert(psMessage);
		poField.focus();
		return false;
	} else
		return true;
}

function isDate(poDate, psMessage) {
var arrayOfStrings, bReturn;
var iYear, iMonth, iDay;
	if (poDate.value.length == 0) return true;
	bReturn = true;
	// Parse yyyy, mm, dd from string
	arrayOfStrings = poDate.value.split("/")
	iMonth = parseInt(arrayOfStrings[0], 10);
	iDay   = parseInt(arrayOfStrings[1], 10);
	iYear  = parseInt(arrayOfStrings[2], 10);
	
	if (iYear == 0){
	  iYear =2000
	}
	
	if (isNaN(iYear) || isNaN(iMonth) || isNaN(iDay)) {
		bReturn = false;
	}
	if (iDay > 31 || iDay < 1 || iMonth < 1 || iMonth > 12 || iYear < 1) {
		bReturn = false;
	}
	if (iDay == 31 && "_1_3_5_7_8_10_12_".indexOf("_"+iMonth+"_") == -1 ) {
		bReturn = false;
	}
	if (iDay == 30 && iMonth == 2) {
		bReturn = false;
	}
	if (iDay == 29 && iMonth == 2 && !isLeapYear(iYear)) {
		bReturn = false;
	}
	if (!bReturn && trim(psMessage).length > 0){	
		alert(psMessage);
		poDate.focus();
	}	
	return bReturn;
}

function trim(pString){
  var iStart, iEnd;
  var sTrimmed = "";
  var cChar;
	  
  // Return empty sting if parameter is undefined
  if (pString==null)
	return sTrimmed;

  iEnd = pString.length - 1;
  iStart = 0;
  bLoop = true;
  cChar = pString.charAt(iStart);
  while ((iStart < iEnd) && ((cChar == "\n") || (cChar == "\r") ||
                            (cChar == "\t") || (cChar == " "))){
     iStart ++;
     cChar = pString.charAt(iStart);
  }
  cChar = pString.charAt(iEnd);
  while ((iEnd >= 0) && ((cChar == "\n") || (cChar == "\r") ||
                        (cChar == "\t") || (cChar == " "))){
     iEnd-=1;
     cChar = pString.charAt(iEnd);
  }
  if (iStart <= iEnd){
     sTrimmed = pString.substring(iStart, iEnd + 1);
  } else {
     sTrimmed = "";
  }
	return sTrimmed;
}