function validateMailingList() {
	var aMsg = new Array();
	var aMandatory = new Array('mlName','mlEmail');
	var bMissing = false;
	var currField = '';

	resetLabels();

	for (var i = 0; i < aMandatory.length; i++) {
		currField = document.getElementById(aMandatory[i]);
		if (currField.value == '') {
			bMissing = true;
			highlightLabel(document.getElementById('label_'+aMandatory[i]));
		}
	}
	if (bMissing)
		aMsg[aMsg.length] = 'Please fill in your name and email address';

	var fEmail = document.getElementById('mlEmail');
	var sEmail = fEmail.value;
	if (sEmail != '' && !validateEmail(sEmail)) {
		aMsg[aMsg.length] = 'Email address is invalid';
		highlightLabel(document.getElementById('label_mlEmail'));
	}

	if (aMsg.length > 0) {
		alert(aMsg.join('\n'));
		return false;
	}
	else
		return true;
}

function validateEmail(email) {
	var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (regex.test(email))
		return true;
	else
		return false;
}

function resetLabels() {
	var labels = document.getElementsByTagName('label');
	var currLabel = '';

	for (var i = 0; i < labels.length; i++) {
		currLabel = labels[i];
		currLabel.style.color = '';
	}
}

function highlightLabel(label) {
	if (label.nodeName.toLowerCase() == 'label') {
		label.style.color = 'red';
	}
}