/*
Common set of JS Validation Functions
*/

function validateZip(strValue) {

	var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
	
	//check for valid US Zipcode
	return objRegExp.test(strValue);

} // validateZip()


function validatePhone(strValue) {

	var objRegExp  = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
	
	//check for valid us phone with or without space between 
	//area code
	return objRegExp.test(strValue); 

} // validatePhone()


function validateState(strValue) {

	var objRegExp = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i; 

	return objRegExp.test(strValue);

} // validateState()


function validateCurrency(strValue) {

	var objRegExp = /(^\$\d{1,3}(,\d{3})*\.\d{2}$)|(^\(\$\d{1,3}(,\d{3})*\.\d{2}\)$)/;
	
	return objRegExp.test( strValue );

} // validateCurrenct()


function validateSSN(strValue) {

	var objRegExp  = /^\d{3}\-\d{2}\-\d{4}$/;
	 
	//check for valid SSN
	return objRegExp.test(strValue);

} // validateSSN()


function validateEmail(strValue) {

	var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;

	//check for valid email
	return objRegExp.test(strValue);

} // validateEmail()


function  validateNumeric(strValue) {

	var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
	
	//check for numeric characters 
	return objRegExp.test(strValue);

} // validateNumeric()


function validateNotEmpty(strValue) {

	var strTemp = strValue;

	strTemp = trimAll(strTemp);

	if(strTemp.length > 0){
		return true;
	}  

	return false;

} // validateNotEmpty()


function trimAll(strValue) {

	var objRegExp = /^(\s*)$/;

	//check for all spaces
	if(objRegExp.test(strValue)) {
		strValue = strValue.replace(objRegExp, '');
		if( strValue.length == 0)
			return strValue;
	}
	
	//check for leading & trailing spaces
	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	if(objRegExp.test(strValue)) {
		//remove leading and trailing whitespace characters
		strValue = strValue.replace(objRegExp, '$2');
	}
	
	return strValue;

} // trimAll()
