function register()
{
	var username_elem = document.getElementById('username');
	var password_elem = document.getElementById('userpass');
	var password2_elem = document.getElementById('userpass2');
	var email_elem = document.getElementById('email');
	var email2_elem = document.getElementById('email2');
	var gender_elem = document.getElementById('gender');
	var birth_month_elem = document.getElementById('birth_month');
	var birth_day_elem = document.getElementById('birth_day');
	var birth_year_elem = document.getElementById('birth_year');
	var agree_terms = document.getElementById('agree_terms');

    if ((!username_elem) || (username_elem.value.length == 0))
    {
       alert("You must enter a user name");
       return;
    }

    if ((!password_elem) || (password_elem.value.length == 0) )
    {
       alert("You must enter a password");
       return;
    }

    if ((!password2_elem) || (password_elem.value != password2_elem.value))
    {
       alert("The passwords you entered do not match.");
       return;
    }

    if ((!email_elem) || (email_elem.value.length == 0))
    {
       alert("You must enter your e-mail address.");
       return;
    }

    if ((!email2_elem) || (email_elem.value != email2_elem.value)) 
    {
       alert("The e-mail addresses you entered do not match.");
       return;
    }
    else
    {
		//regex from http://www.regular-expressions.info/email.html
		//this will match everything but .museum and a rare class of obsolete email addresses
		var re = new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$");
		
		if (!email_elem.value.match(re)) 
		{
			alert("The email address does not appear to be a valid email address.");
			return;
		}
    }
    
    if ((!gender_elem) || (gender_elem.value == 0))
    {
       alert("You must select your gender.");
       return;
    }

    if ((!birth_month_elem) || (birth_month_elem.value == 0))
    {
       alert("You must select your birth month.");
       return;
    }

    if ((!birth_day_elem) || (birth_day_elem.value == 0))
    {
       alert("You must select your birth day.");
       return;
    }
    
    if ((!birth_year_elem) || (birth_year_elem.value == 0))
    {
       alert("You must select your birth year.");
       return;
    }
    
    if ((!agree_terms) || (!agree_terms.checked))
    {
    	alert("You must agree to the terms of use.");
    	return;
    }
    
    var form = document.getElementById( 'register_form' );
    form.submit();
}
