function validateSSN(el) {
	var ssnVal = el.value
	var ssnPat = /^(\s)*(\d{3}(-|\s)?\d{2}(-|\s)?\d{4})?(\s)*$/;
	var patMatch = ssnPat.exec(ssnVal);
	if (patMatch) {
		return true;
	} else {
		return false;
	}
}

function validateZip(el) {
	var zipVal = el.value
	var zipCodePat=/^(\s)*(\d{5}((-|(\s(\s)*))\d{4})?)?(\s)*$/;
	var patMatch = zipCodePat.exec(zipVal);
	if(patMatch){
		return true;
	}
	else {
		return false;
	}
}

function validateYear(el) {
	var yearVal = trim(el.value);
	if(isNumeric(yearVal)){
		if (yearVal.length < 2) {
			return false;		
		}
		else if (yearVal.length == 2) {
			var yr = parseInt(yearVal);
			el.value = '19' + yearVal;
			
			return true;
		}
		else if (yearVal.length == 3) {
			return false;
		}
		else if (yearVal.length == 4) {
			var yr = parseInt(yearVal);
			if (yr > 2000 || yr < 1850)  return false;

			return true;
		}
		return false;
	}
	else {
		return false;
	}
}

function validateDate(el) {
	var dateVal = el.value;
	

	var datePat = /^(\s)*(\d{1,2}\/\d{1,2}\/(\d\d(\d\d)?))?(\s)*$/;
	var patMatch = datePat.exec(dateVal);
	if (!patMatch) {
		return 'NoMatch';
	}

	if (trim(dateVal) == '') {
		return 'Match';
	}
	var dateFormat = /\d+/g;
	var result = dateVal.match(dateFormat);

	if(result[0].length == 1) result[0] = '0' + result[0];
	if(result[1].length == 1) result[1] = '0' + result[1];
  
	if (result[2].length == 2) {
		var yr = parseInt(result[2]);
		result[2] = '19' + result[2];
	}

	var month = result[0] - 0;
	var day = result[1] - 0;
	var year = result[2] - 0;

	if (month > 12 || month < 1) {
		return 'InvalidMonth';
	}

	var maxday = 31;
	if (month == 4 || month == 6 || month == 9 || month == 11) {
	    maxday = 30;
	} else if (month == 2) {
		maxday = 28;
		if (year % 4 == 0) {
			maxday = 29;
			if (year % 100 == 0 && year % 400 != 0) maxday = 28;
		}
	}

	if (day > maxday || day < 1) {
		return 'InvalidDay';
	}

	if( year <= 1800) {
		return 'InvalidBirthYear';
	}
	
	el.value = result[0] + '/' + result[1] + '/' + result[2];
	return 'Match';
}


function validateDateOfBirth(el) {
	var dateVal = el.value;
	
	var datePat = /^(\s)*(\d{1,2}\/\d{1,2}\/(\d\d(\d\d)?))?(\s)*$/;
	var patMatch = datePat.exec(dateVal);
	if (!patMatch) {
		return 'NoMatch';
	}
	
	var dateFormat = /\d+/g;
	var result = dateVal.match(dateFormat);

	if(result[0].length == 1) result[0] = '0' + result[0];
	if(result[1].length == 1) result[1] = '0' + result[1];
  
	if (result[2].length == 2) {
		var yr = parseInt(result[2]);
		result[2] = '19' + result[2];
	}

	var month = result[0] - 0;
	var day = result[1] - 0;
	var year = result[2] - 0;

	if (month > 12 || month < 1) {
		return 'InvalidMonth';
	}

	var maxday = 31;
	if (month == 4 || month == 6 || month == 9 || month == 11) {
	    maxday = 30;
	} else if (month == 2) {
		maxday = 28;
		if (year % 4 == 0) {
			maxday = 29;
			if (year % 100 == 0 && year % 400 != 0) maxday = 28;
		}
	}

	if (day > maxday || day < 1) {
		return 'InvalidDay';
	}

	if( year <= 1800 || year >= 2000) {
		return 'InvalidBirthYear';
	}
	
	el.value = result[0] + '/' + result[1] + '/' + result[2];
	return 'Match';
}

function isNumeric(val) {
	var digitPat = /^(\s)*(\d+)?(\s)*$/;
	var patMatch = digitPat.exec(val);
	if (patMatch) {
		return true;
	}
	else {
		return false;	
	}
}

function isAlphaNumeric(val) {
	var digitPat = /^(\s)*([a-zA-Z0-9_]+)?(\s)*$/;
	var patMatch = digitPat.exec(val);
	if (patMatch) {
		return true;
	}
	else {
		return false;	
	}
}

function isAtSignInString (val){
	if(val.length==0)
		return (false);
	if (val.indexOf ("@", 0)==-1)
		return (false);
	return (true);
}

function isSpaceInString (val){
	if(val.length==0)
		return (false);
	if (val.indexOf (" ", 0)==-1)
		return (false);
	return (true);
}

function isQuotationMarkInString (val){
	if(val.length==0)
		return (false);
	if (val.indexOf ("\"", 0)==-1)
		return (false);
	return (true);
}