function prepareForm()
{
	var membership = document.getElementById("membership");
	var session1 = document.getElementById("session1");
	var session2 = document.getElementById("session2");
	var session3 = document.getElementById("session3");
	var tour = document.getElementById("tour");

	var missing ='';
	if(!membership.value)
		missing += '- Membership Status\n';
	if(!session1.value)
		missing += '- Session 1 Workshop Choice\n';
	if(!session2.value)
		missing += '- Session 2 Workshop Choice\n';
	if(!session3.value)
		missing += '- Session 3 Workshop Choice\n';
	if(!tour.value)
		missing += '- Tour option\n';

	if(missing)
	{
		alert('Please fill out the following fields before proceeding:\n\n'+missing);
		return false;
	}

	var donation = document.getElementById('donation');
	if(!isNumeric(donation.value))
	{
		alert('Please provide an valid monetary value for your donation.');
		return false;
	}

	var AMOUNT = document.getElementById("AMOUNT");
	var member_fee = document.getElementById("member_fee");
	var mv_fee = document.getElementById("mv_fee");
	var nonmember_fee = document.getElementById("nonmember_fee");

	if(membership.value == 'Member')
		AMOUNT.value = member_fee.value;
	else if(membership.value == 'Non-member')
		AMOUNT.value = nonmember_fee.value;
	else AMOUNT.VALUE = mv_fee.value;

	if(donation.value)
		AMOUNT.value = Number(AMOUNT.value) + Number(donation.value);

	var description;

	description = '';
	description += 'Membership Status: '+membership.value+', ';
	description += 'Session 1: '+session1.value+', ';
	description += 'Session 2: '+session2.value+', ';
	description += 'Session 3: '+session3.value+', ';
	description += 'Tour Option: '+tour.value;

	if(donation.value)
		description += ', Donation: $'+donation.value;

	document.registration_form.DESCRIPTION.value = description;

	return true;
}

function isNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;
	var decimal_found = false;
	var decimal_position = null;
 
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if(ValidChars.indexOf(Char) == -1) 
			IsNumber = false;
		else if(decimal_found && Char == '.')
			IsNumber = false;
		else if(decimal_found && i > decimal_position+2)
			IsNumber = false;
		else if(Char == '.')
		{
			decimal_found = true;
			decimal_position = i;
		}
	}
	
	return IsNumber;
}