

function checkNumeric(field)
	{
		// Match whole string for digits zero or more times
		var pattern = /^\d*$/;		
		return pattern.test(field);
	}
	
	function checkAlphabetic(field)
	{
		// Match whole string for upper or lower case letters of the alphabet zero or more times
		var pattern = /^[a-zA-Z]*$/;
		return pattern.test(field);
	}

	function checkInvalidChars(field)
	{
		// Matches string for characters & > <
		var pattern = /[&<>]/;		
		return pattern.test(field);
	}

	function postcodeValid(field)
	{
		// Match whole string for pattern of ANsNAA or ANNsNAA or AANsNAA or AANNsNAA or AANAsNAA or ANAsNAA
		// Where 'A' is upper or lower case letters of the alphabet, 'N' is any digit and 's' is space
		var pattern = /^[a-zA-Z](\d|\d\d|[a-zA-Z]\d|[a-zA-Z]\d\d|[a-zA-Z]\d[a-zA-Z]|\d[a-zA-Z])\s\d[a-zA-Z][a-zA-Z]$/;
		return pattern.test(field.value);
	}
	
	function validateName(field)
	{	
		// Match whole string for upper or lower case letters of the alphabet ' ,-, and space zero or more times
		var pattern = /^[a-zA-Z\'\-\s]*$/;
		return pattern.test(field);	
	}


function DDMMYYYYValid(inputDD, inputMM, inputYYYY) {
		dd=inputDD;	
		mm=inputMM;	
		yyyy=inputYYYY;		
		if (dd == "DD" || mm == "MM"  || yyyy == "YYYY") {		
			return false;
		}
		if (!checkNumeric(dd) || (dd < 1 || dd > 31)) {		
			return false;
		}
		if (dd.length == 1) {

			dd = "0" + dd;
			inputDD = dd;
		}
		if (!checkNumeric(mm) || (mm < 1 || mm > 12)) {
			return false;
		}
		if (mm.length == 1) {

			mm = "0" + mm;
			inputMM = mm;			
		}
		if (!checkNumeric(yyyy)) {

			return false;
		}	
		inputYYYY = yyyy;
	
		if (yyyy.length != 4) {

			return false;
		}
		if (yyyy < 1900 || yyyy > 2099) {

			return false;
		}	  	
		if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) {

			return false;
		}		
		if (mm == 2) {

			var leapyear = (yyyy % 4 == 0 && (yyyy % 100 != 0 || yyyy % 400 == 0));
			if ((leapyear && dd > 29) || (!leapyear && dd > 28)) {

			return false;
			}
		}
		
		return true;
	}