// FORM VALIDATION FUNCTIONS
String.prototype.form_trim = function() { return this.replace(/^\s+|\s+$/g, ''); };

var isEmail = function(str){ str = str.form_trim();
	var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/	
	return reg.test(str);
}

var isEmpty = function(str){str = str.form_trim();
	if( str == "" ){return true; }else{return false; }
}

var isNumber = function(str){str = str.form_trim();
	var reg = /^\d+$/;
	return reg.test(str); 
}

var isDecimal = function(str){str = str.form_trim();
	var reg = /^(\d+)?\.\d+$/;
	return reg.test(str); 
}

var isMoney = function(str){str = str.form_trim();
	var reg = /^\d+\.\d{2}$/;
	return reg.test(str); 
}

var isPhone = function(str){str = str.form_trim();
	var reg = /^\(?(\d{3})\)?[ \.\-]?(\d{3})[\.\-]?(\d{4})([ ]?((e|E)(x|X)(t|T))[\.]?[ ]?(\d{2,5}))?$/
	return reg.test(str);
}



var formatPhone = function(str){str = str.form_trim();
	var reg = /^\(?(\d{3})\)?[ \.\-]?(\d{3})[\.\-]?(\d{4})([ ]?((e|E)(x|X)(t|T))[\.]?[ ]?(\d{2,5}))?$/
	var rval = reg.exec(str);
	var ret = "";
		ret += "(" + rval[1] + ") ";
		ret += rval[2];
		ret += "-";
		ret += rval[3];
		if( rval[4] ){
			ret += rval[4];
		}		
		return ret;
}

var isSocial = function(str){str = str.form_trim();
	var reg = /^\d{3}-\d{2}-\d{4}$/; // WITH AREA CODE
	return reg.test(str);
}

var isZip = function(str){str = str.form_trim();
	var rval = false;
	var reg = /^\d{5}-\d{4}$/; // WITH AREA CODE WITH EXTENSION
	var reg2 = /^\d{5}$/; // WITH AREA CODE
	if( reg.test(str) || reg2.test(str) ){ rval = true; } else {rval = false; }
	return rval;
}


var radioChecked = function(obj){str = str.form_trim();
	for( var i = 0; i < obj.length; i++ ){
		if( obj[i].checked ){ return true; }
	}
	return false;
}

var formError = function ( message, obj ){
	var out = "Please correct the items below prior to submitting your application.\n========================================\n\n";
	out += message;
	alert( out );
	if( obj ){
		obj.focus(); 
	}
	return;
}

var validationError = function ( err, timeStamp ){
		errSep = "\n*****************************************************\n";
		errTitle = "                  JavaScript Validation Error";
		alert( errTitle + errSep + "\n" + err + "\n" + errSep + "\n" + timeStamp );
}



var validPhone = function( prefix,middle,suffix ){prefix = prefix.form_trim();middle = middle.form_trim();suffix = suffix.form_trim();
	if( prefix.lenght < 3 || !isNumber(prefix) ){ return false; }
	else if( middle.length < 3 || !isNumber(middle) ){ return false; }
	else if( suffix.length < 4 || !isNumber(suffix) ){ return false; }
	else{ return true; }
}
