function showTeacherFields()
{
	document.getElementById('first_name_p').style.display="inline";
	document.getElementById('last_name_p').style.display="inline";
	document.getElementById('user_title_p').style.display="none";
	document.getElementById('user_login_p').style.display="inline";
	document.getElementById('user_email_p').style.display="inline";
	document.getElementById('user_address_p').style.display="inline";
	document.getElementById('user_city_p').style.display="inline";
	document.getElementById('user_state_p').style.display="inline";
	document.getElementById('user_zip_p').style.display="inline";
	document.getElementById('user_phone_p').style.display="inline";
	document.getElementById('user_phone_p_star').style.display="none";
	document.getElementById('user_phone_ext_p').style.display="inline";
	document.getElementById('user_school_p').style.display="inline";
	document.getElementById('user_district_p').style.display="inline";
	document.getElementById('user_subject_grade_p').style.display="inline";
	document.getElementById('user_grade_p').style.display="none";
	document.getElementById('user_agency_p').style.display="none";
	document.getElementById('user_sponsor_p').style.display="none";
	document.getElementById('user_newsletter_p').style.display="inline";
}

function showStudentFields()
{
	document.getElementById('first_name_p').style.display="inline";
	document.getElementById('last_name_p').style.display="inline";
	document.getElementById('user_title_p').style.display="none";
	document.getElementById('user_login_p').style.display="inline";
	document.getElementById('user_email_p').style.display="inline";
	document.getElementById('user_address_p').style.display="inline";
	document.getElementById('user_city_p').style.display="inline";
	document.getElementById('user_state_p').style.display="inline";
	document.getElementById('user_zip_p').style.display="inline";
	document.getElementById('user_phone_p').style.display="inline";
	document.getElementById('user_phone_p_star').style.display="none";
	document.getElementById('user_phone_ext_p').style.display="none";
	document.getElementById('user_school_p').style.display="inline";
	document.getElementById('user_district_p').style.display="inline";
	document.getElementById('user_subject_grade_p').style.display="none";
	document.getElementById('user_grade_p').style.display="inline";
	document.getElementById('user_agency_p').style.display="none";
	document.getElementById('user_sponsor_p').style.display="none";
	document.getElementById('user_newsletter_p').style.display="inline";
}

function showMemberFields()
{
	document.getElementById('first_name_p').style.display="inline";
	document.getElementById('last_name_p').style.display="inline";
	document.getElementById('user_title_p').style.display="inline";
	document.getElementById('user_login_p').style.display="inline";
	document.getElementById('user_email_p').style.display="inline";
	document.getElementById('user_address_p').style.display="inline";
	document.getElementById('user_city_p').style.display="inline";
	document.getElementById('user_state_p').style.display="inline";
	document.getElementById('user_zip_p').style.display="inline";
	document.getElementById('user_phone_p').style.display="inline";
	document.getElementById('user_phone_p_star').style.display="inline";
	document.getElementById('user_phone_ext_p').style.display="inline";
	document.getElementById('user_school_p').style.display="none";
	document.getElementById('user_district_p').style.display="none";
	document.getElementById('user_subject_grade_p').style.display="none";
	document.getElementById('user_grade_p').style.display="none";
	document.getElementById('user_agency_p').style.display="inline";
	document.getElementById('user_sponsor_p').style.display="inline";
	document.getElementById('user_newsletter_p').style.display="inline";
}

function toggleFields(box)
{
	switch ( box.value )
	{
		case("teacher"):
			showTeacherFields();
			break;
		case("student"):
			showStudentFields();
			break;
		case("community-member"):
			showMemberFields();
			break;
	}
}

function checkTeacherFields()
{
	var missing_message = "You forgot the required fields:";
	var failed_message = "You have invalid entries in the following fields:";

	// Test Regular Expressions
    var phone_regex = /^(\()?[2-9]\d\d(\))?\s*-?\d\d\d\s*-?\d\d\d\d$/;
	var phone_ext_regex = /^.*\d+.*$/;
	var email_regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

	var first_name = document.getElementById('first_name');
	if ( first_name.value == "" )
		missing_message += " First Name,";

	var last_name = document.getElementById('last_name');
	if ( last_name.value == "" )
		missing_message += " Last Name,";

	var user_login = document.getElementById('user_login');
	if ( user_login.value == "" )
		missing_message += " Login,";

	var user_email = document.getElementById('user_email');
	if ( user_email.value == "" )
		missing_message += " Email,";
	else if ( !user_email.value.match( email_regex ) )
		failed_message += " Email,";

	var user_address = document.getElementById('user_address');
	if ( user_address.value == "" )
		missing_message += " Address,";

	var user_city = document.getElementById('user_city');
	if ( user_city.value == "" )
		missing_message += " City,";

	var user_state = document.getElementById('user_state');
	if ( user_state.value == "" )
		missing_message += " State,";

	var user_zip = document.getElementById('user_zip');
	if ( user_zip.value == "" )
		missing_message += " Zip,";

	var user_phone = document.getElementById('user_phone');
	if ( user_phone.value != "" && !user_phone.value.match( phone_regex ) )
		failed_message += " Phone Number,";

	var user_phone_ext = document.getElementById('user_phone_ext');
	if ( user_phone.value != "" && !user_phone_ext.value.match( phone_ext_regex ) )
		failed_message += " Phone Extension,";

	var user_school = document.getElementById('user_school');
	if ( user_school.value == "" )
		missing_message += " School,";

	var user_district = document.getElementById('user_district');
	if ( user_district.value == "" )
		missing_message += " District,";

	var user_newsletter = document.getElementById('user_newsletter');
	if ( user_newsletter.value != "Yes" && user_newsletter.value != "No" )
		failed_message += " Newsletter,";

	if ( failed_message != "You have invalid entries in the following fields:" )
	{
		alert( failed_message.substring(0, failed_message.length-1) + "." );
		return -1;
	}

	if ( missing_message != "You forgot the required fields:" )
	{
		alert( missing_message.substring(0, missing_message.length-1) + "." );
		return -1;
	}

	return 0;
}

function checkStudentFields()
{
	var missing_message = "You forgot the required fields:";
	var failed_message = "You have invalid entries in the following fields:";

	// Test Regular Expressions
    var phone_regex = /^(\()?[2-9]\d\d(\))?\s*-?\d\d\d\s*-?\d\d\d\d$/;
	var phone_ext_regex = /^.*\d+.*$/;
	var email_regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

	var first_name = document.getElementById('first_name');
	if ( first_name.value == "" )
		missing_message += " First Name,";

	var last_name = document.getElementById('last_name');
	if ( last_name.value == "" )
		missing_message += " Last Name,";

	var user_login = document.getElementById('user_login');
	if ( user_login.value == "" )
		missing_message += " Login,";

	var user_email = document.getElementById('user_email');
	if ( user_email.value == "" )
		missing_message += " Email,";
	else if ( !user_email.value.match( email_regex ) )
		failed_message += " Email,";

	var user_address = document.getElementById('user_address');
	if ( user_address.value == "" )
		missing_message += " Address,";

	var user_city = document.getElementById('user_city');
	if ( user_city.value == "" )
		missing_message += " City,";

	var user_state = document.getElementById('user_state');
	if ( user_state.value == "" )
		missing_message += " State,";

	var user_zip = document.getElementById('user_zip');
	if ( user_zip.value == "" )
		missing_message += " Zip,";

	var user_phone = document.getElementById('user_phone');
	if ( user_phone.value != "" && !user_phone.value.match( phone_regex ) )
		failed_message += " Phone Number,";

	var user_school = document.getElementById('user_school');
	if ( user_school.value == "" )
		missing_message += " School,";

	var user_district = document.getElementById('user_district');
	if ( user_district.value == "" )
		missing_message += " District,";

	var user_newsletter = document.getElementById('user_newsletter');
	if ( user_newsletter.value != "Yes" && user_newsletter.value != "No" )
		failed_message += " Newsletter,";

	if ( failed_message != "You have invalid entries in the following fields:" )
	{
		alert( failed_message.substring(0, failed_message.length-1) + "." );
		return -1;
	}

	if ( missing_message != "You forgot the required fields:" )
	{
		alert( missing_message.substring(0, missing_message.length-1) + "." );
		return -1;
	}

	return 0;
}

function checkMemberFields()
{
	var missing_message = "You forgot the required fields:";
	var failed_message = "You have invalid entries in the following fields:";

	// Test Regular Expressions
    var phone_regex = /^(\()?[2-9]\d\d(\))?\s*-?\d\d\d\s*-?\d\d\d\d$/;
	var phone_ext_regex = /^.*\d+.*$/;
	var email_regex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

	var first_name = document.getElementById('first_name');
	if ( first_name.value == "" )
		missing_message += " First Name,";

	var last_name = document.getElementById('last_name');
	if ( last_name.value == "" )
		missing_message += " Last Name,";

	var user_title = document.getElementById('user_title');
	if ( user_title.value == "" )
		missing_message += " Title,";

	var user_login = document.getElementById('user_login');
	if ( user_login.value == "" )
		missing_message += " Login,";

	var user_email = document.getElementById('user_email');
	if ( user_email.value == "" )
		missing_message += " Email,";
	else if ( !user_email.value.match( email_regex ) )
		failed_message += " Email,";

	var user_address = document.getElementById('user_address');
	if ( user_address.value == "" )
		missing_message += " Address,";

	var user_city = document.getElementById('user_city');
	if ( user_city.value == "" )
		missing_message += " City,";

	var user_state = document.getElementById('user_state');
	if ( user_state.value == "" )
		missing_message += " State,";

	var user_zip = document.getElementById('user_zip');
	if ( user_zip.value == "" )
		missing_message += " Zip,";

	var user_phone = document.getElementById('user_phone');
	if ( user_phone.value == "" )
		missing_message += " Phone Number,";
	else if ( !user_phone.value.match( phone_regex ) )
		failed_message += " Phone Number,";

	var user_phone_ext = document.getElementById('user_phone_ext');
	if ( user_phone_ext.value != "" && !user_phone_ext.value.match( phone_ext_regex ) )
		failed_message += " Phone Extension,";

	var user_agency = document.getElementById('user_agency');
	if ( user_agency.value == "" )
		missing_message += " Agency/Business Affiliation,";

	var user_sponsor = document.getElementById('user_sponsor');
	if ( user_sponsor.value != "Yes" && user_sponsor.value != "No" )
		failed_message += " Sponsor,";

	var user_newsletter = document.getElementById('user_newsletter');
	if ( user_newsletter.value != "Yes" && user_newsletter.value != "No" )
		failed_message += " Newsletter,";

	if ( failed_message != "You have invalid entries in the following fields:" )
	{
		alert( failed_message.substring(0, failed_message.length-1) + "." );
		return -1;
	}

	if ( missing_message != "You forgot the required fields:" )
	{
		alert( missing_message.substring(0, missing_message.length-1) + "." );
		return -1;
	}

	return 0;
}

function attemptSubmit(theform)
{
	var user_type = document.getElementById('user_type').value
	switch( user_type )
	{
		case( "teacher" ):
			var result = checkTeacherFields();
			break;
		case( "student" ):
			var result = checkStudentFields();
			break;
		case( "community-member" ):
			var result = checkMemberFields();
			break;
		default:
			alert("Error, please select a registration type");
	}

	if ( result == 0 )
		theform.submit();
}
