
function replace_email() { // un-hides e-mail addresses with appropriate classname

	var links = document.getElementsByTagName( "A" );

	for ( var i = 0; i < links.length; i++ ) {
		if ( links[i].className.match( /email_link/ ) ) {
			var address_to_replace = links[i].firstChild;
			var real_address = address_to_replace.nodeValue.replace( "[at]", "@" );

			if ( links[i].getAttribute( "name" ) ) {
				address_to_replace.nodeValue = links[i].getAttribute( "name" );
			} else {
				address_to_replace.nodeValue = real_address; 
			}
			address_to_replace.parentNode.setAttribute( "href", "mailto:" + real_address );
		}
	}	
}

function setup_email_validation() {
	
	var forms = document.getElementsByTagName( "FORM" );

	for (var i = 0; i < forms.length; i++) {
		forms[i].onsubmit = validate_email;
	}
}

function validate_email() { // validates form inputs with appropriate name

	var email_fields = this.getElementsByTagName( "INPUT" );

	for ( var i = 0; i < email_fields.length; i++ ) {
		if ( email_fields[i].getAttribute( "name" ) == "email" ) {

			var email_address = email_fields[i].value;

			if ( email_address.search( /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ ) != -1 ) {
				return true;
			} else { 
				alert( "Please enter a valid e-mail address." );
				email_fields[i].focus();
				return false; 
			}
		}
	}
}

window.onload = function() { 
	if ( document.getElementsByTagName ) {
		replace_email(); 
		setup_email_validation();
	}
};



