// Gives forms the ability to clear themselves on focus by the user when they have default values.

String.prototype.capitalize = function(){
	return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
};

var fields = form.elements;
for (var i = 0; i < fields.length; i++) {
	fields[i].onfocus = function() {
		if (this.value == this.defaultValue) {
			this.value = "";
			this.style.color = '#000';
		}
	}
	fields[i].onblur = function() {
		if (this.value == "") {
			this.value = this.defaultValue;
			this.style.color = '#BCBCBC';
		}
	}
}

form.onsubmit = function () {
	for (var i = 0; i < fields.length; i++) {
		if ((!fields[i].value || fields[i].value == fields[i].defaultValue) &&
											fields[i].defaultValue.indexOf('Required') !== -1) {
			alert(fields[i].name.capitalize() + ' is required.');
			return false;
		}
		else if (fields[i].name == 'email' && !isValidEmailAddress(fields[i].value)) {
/*			else if (fields[i].name == 'email' && !fields[i].value.match(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b/i)) {*/
			alert('Email address is invalid.');
			return false;
		}
	}
	return true;
}

function isValidEmailAddress(emailAddress) 
{ 
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
	return pattern.test(emailAddress); 
} 

