function showMoreFriends() {
	var cells = document.getElementsByTagName('tr');
	for (var i = 0; i < cells.length; i++) {
		if (cells[i].className == 'invisible') {
			cells[i].className = '';
		}
	}
	var more = document.getElementById('morerow').className = 'invisible';
	return false;
}

function validateField(name, desc, state) {
	var field = document.getElementsByName(name)[0];
	if (field.value == '') {
		state.error = true;
		state.errorMsg += '* ' + desc + ' is required.\n';
	}
}

function validateEmail(name, desc, state) {
	var field = document.getElementsByName(name)[0];
	if (field.value == '') {
		state.error = true;
		state.errorMsg += '* ' + desc + ' is required.\n';
	} else if (window.RegExp) {
		var re = new RegExp('^([\\w]+)([\\.\\-\\+_][\\w]+)*@([\\w]+)(\\.[\\w]+)*(\\.[\\w]{2,3}){1,2}$');
		if (!re.test(field.value)) {
			state.error = true;
			state.errorMsg += '* ' + desc + ' is invalid.\n';
		}
	}
}

function validate() {
	var state = { error:false,
	              errorMsg:'Please correct the following error(s):\n' };
	
	validateField('from', 'Your name', state);
	validateField('message', 'Your message', state);
	validateField('friend1name', "Friend's name", state);
	validateEmail('friend1email', "Friend's email address", state);
	
	if (document.getElementsByName('friend2name')[0].value != '')
		validateEmail('friend2email', "Friend 2's email address", state);
	
	if (document.getElementsByName('friend3name')[0].value != '')
		validateEmail('friend2email', "Friend 3's email address", state);

	if (document.getElementsByName('friend4name')[0].value != '')
		validateEmail('friend2email', "Friend 4's email address", state);

	if (document.getElementsByName('friend5name')[0].value != '')
		validateEmail('friend2email', "Friend 5's email address", state);
	
	if (state.error) {
		alert(state.errorMsg);
		return false;
	} else {
		return true;
	}
}