///////////////////////////////// STRING validation functions/////////////////////////////////// do trim//function trim(str){  return str.replace(/^\s+|\s+$/g, ''  );}//// function that validates a string contains only alpha characters//function isAlpha( inputStr ){	for (var i=0; i<inputStr.length; i++)	{		var ch = inputStr.charAt(i);		//alert("Checking character "+char);		if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')))		{			//alert("Invalid character");			return false;		}	}	return true;}//// function that validates a string contains only alphanumeric characters//function isText( inputStr ){	for (var i=0; i<inputStr.length; i++)	{		var ch = inputStr.charAt(i);		//alert("Checking character "+char);		if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9')))		{			//alert("Invalid character");			return false;		}	}	return true;}//// function that determines if an input value has been entered at all.//function isEmpty(inputStr){	if (inputStr == null || ( inputStr.toString().search( /^\s*$/ ) != -1 ) )	{		return true;	}	return false;}//// function to check string length is within specified range//function isRangeSizeValid(inputVal, lowerLimit, upperLimit){	if (isEmpty(inputVal))		return true;	if ( lowerLimit != null && inputVal.length < lowerLimit)			return false;	if ( upperLimit != null && inputVal.length > upperLimit)			return false;	return true;}////////////////////////////////// NUMERIC validation functions////////////////////////////////////// general purpose function to check whether a numeric input is a positive integer or not//function isPosInteger(inputVal){	inputStr = inputVal.toString()	for (var i = 0; i < inputStr.length; i++)	{		var oneChar = inputStr.charAt(i);		if (oneChar < "0" || oneChar > "9")		{			return false;		}	}	return true;}//// general purpose function to check whether the numeric input is a positive or negative integer//function isInteger(inputVal){	inputStr = inputVal.toString()	for (var i = 0; i < inputStr.length; i++)	{		var oneChar = inputStr.charAt(i)		if (i == 0 && oneChar == "-")		{			continue;		}		if (oneChar < "0" || oneChar > "9")		{			return false;		}	}	return true;}// // function to determine if value is in acceptable integer range//function inRange(inputStr, lowerLimit, upperLimit){	if (isEmpty(inputStr))		return true;	if (!isInteger(inputStr))		return false;	num = parseInt(inputStr)	if (lowerLimit != null && num < lowerLimit)		return false;	if (upperLimit != null && num > upperLimit)		return false;	return true;}//// general purpose function to check if value is a real number//function isReal(inputVal){	oneDecimal = false	inputStr = inputVal.toString()	for (var i = 0; i < inputStr.length; i++) {		var oneChar = inputStr.charAt(i)		if (i == 0 && oneChar == "-") {			continue		}		if (oneChar == "." && !oneDecimal) {			oneDecimal = true			continue		}		if (oneChar < "0" || oneChar > "9") {			return false		}	}	return true}///////////////////////////////// Australia Post code check//////////////////////////////function isPostcode( inputVal ){  inputStr = inputVal.toString();  if ( inputStr.search( /^\d{3,4}$/ ) == -1 ) {    return false;  } else {    return true;  }}////////////////////////////// Aust ABN number////////////////////////////function isABN( inputVal ){  inputStr = inputVal.toString();  if ( inputStr.search( /^\d{2}( \d{3}){3}$|^\d{11}$/ ) == -1 ) {    return false;  } else {    return true;  }}/////////////////////////////// DATE validation functions///////////////////////////////// check basic date syntax dd/mm/yyyy and date validity//function isValidDate(dateString){	if (stringToDate(dateString) == null)		return false;	else		return true;}//// check date is valid and is before today//function isPastDate(dateString){	if (isEmpty(dateString))		return true;	var d = stringToDate( dateString);	var todaysDate = getTodaysDate();	return dateCompare(d, "<=", todaysDate);}//// check date is valid and is today or in the future//function isFutureDate(dateString){	if (isEmpty(dateString))		return true;	var d = stringToDate( dateString);	var todaysDate = getTodaysDate();	return dateCompare(d, ">=", todaysDate);}//// Converts a 2 digit year to a 4 digit year//function iY2KBlackBox(iYear){	if (isNaN(iYear)) return '';	// Detect if we got a 4 digit year. If not, add 2000 to it to make it a reasonable year	if (iYear.length <= 2)	{		iYear = parseInt(iYear) + 2000;	}	else	{		iYear = parseInt(iYear);	}	return iYear;}//// Function determines whether the integer components make up a valid date//function DayOK(iDay, iMonth, iYear){	if ( (iMonth == 01) || (iMonth == 03) || (iMonth == 05) || (iMonth == 07) || (iMonth == 08) || (iMonth == 10) || (iMonth == 12) )	{		return (iDay >= 01 && iDay <= 31);	}	else	{		if (iMonth == 02)		{			if ((iYear % 4 == 0) && ( (!(iYear % 100 == 0)) || (iYear % 400 == 0) ) )			{				// 29 days in Feb during leap year				return (iDay >= 01 && iDay <= 29);			}			else			{				// 28 days otherwise				return (iDay >= 01 && iDay <= 28);			}		}		else		{			if ( (iMonth == 04) || (iMonth == 06) || (iMonth == 09) || (iMonth == 11) )			{				return (iDay >= 01 && iDay <= 30);			}		}	}}//// Converts a string in the format dd/mm/yy and returns a date.// Returns null if date is not valid. //function stringToDate( dateString ){	//alert("Running stringToDate on "+dateString);	// Check for empty string	if (dateString == null || dateString == "")		return null;	// Check basic date syntax	var dateParts = dateString.split('/');	for (var i = 0; i < 3; ++i)	{		if (dateParts[i]==null || !isPosInteger(dateParts[i]))			return null;	}	var day = dateParts[0];	var month = dateParts[1];		//Check the corect number of digits for each date Part	if ((day.length > 2) || (month.length > 2))		return null;		var year = iY2KBlackBox(dateParts[2]);		if (year > 9999)	 return null;	// Check it is a valid date	if ( !DayOK( day, month, year) )		return null;		var theDate = new Date( year, month-1, day);	return theDate;}//// Converts a date to a string in the format dd/mm/yyyy//function dateToString( theDate ){	var theDateString;	var day = theDate.getDate();	var month = theDate.getMonth()+1;	var year = theDate.getFullYear();	theDateString = (day < 10) ? "0"+day : day;	theDateString = theDateString + "/";	theDateString = theDateString + ((month < 10) ? "0"+month : month);	theDateString = theDateString + "/";	theDateString = theDateString + year;	return theDateString;}//// Returns today's date with the time component removed//function getTodaysDate(){	var todaysDate = new Date();	return new Date( todaysDate.getFullYear(), todaysDate.getMonth(), todaysDate.getDate() );}