/*
* Check email using regexes
*/
function check_email(email)
{
 	if (typeof(email) != "string")
        return false;

    //characters allowed on name: 0-9a-Z-._ on host: 0-9a-Z-. on between: @
	var re = /^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/;
    if (email.search(re) == -1)
       return false;

    //must start or end with alpha or num
    re = /^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/;
    if (email.search(re) != -1)
        return false;

    //name must end with alpha or num
    re = /([0-9a-zA-Z_]{1})\@./;
    if (email.search(re) == -1)
        return false;

    //host must start with alpha or num
    re = /.\@([0-9a-zA-Z_]{1})/;
    if (email.search(re) == -1)
        return false;

    //pair .- or -. or -- or .. not allowed
	re = /.\.\-.|.\-\..|.\.\..|.\-\-./;
    if (email.search(re) != -1)
        return false;

    //pair ._ or -_ or _. or _- or __ not allowed
    re = /.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./;
    if (email.search(re) != -1)
        return false;

    //host must end with '.' plus 2-5 alpha for TopLevelDomain
    re = /\.([a-zA-Z]{2,5})$/;
    if (email.search(re) == -1)
        return false;

    return true;
}

function submit_form(form)
{
	var email = form['em'].value;
	if (!check_email(email))
	{
		alert("Invalid email address!!!\n\nPlease enter your valid email address.");
		form['em'].focus();
		return false;
	}
	var pw = form['pw'].value;
	var pw2 = form['pw2'].value;
	if (pw.length == 0)
	{
		alert("Please choose a password.");
		form['pw'].focus();
		return false;
	} 
	else if (pw.length > 32) 
	{
		alert("Your new password must be no greater than 32 characters.");
		form['pw'].value = "";
		form['pw2'].value = "";
		form['pw'].focus();
		return false;
	}
	else if (pw.length < 6) 
	{
		alert("Your new password must be at least 6 characters.");
		form['pw'].value = "";
		form['pw2'].value = "";
		form['pw'].focus();
		return false;
	}
	if (pw != pw2)
	{
		alert("Your password entries did not match.");
		form['pw'].value = "";
		form['pw2'].value = "";
		form['pw'].focus();
		return false;
	}
	var list = form['pw_question'];
	var pw_question = list.options[list.selectedIndex].value;
	var pw_answer = form['pw_answer'].value;
	if (pw_question.length == 0 || pw_question == "0")
	{
		alert("Please select a Security Question.");
		form['pw_question'].focus();
		return false;
	}
	if (pw_answer.length == 0)
	{
		alert("Please enter Your Security Answer.");
		form['pw_answer'].focus();
		return false;
	}
	var pwHash = hex_md5(pw);
	form['sid'].value = pwHash;
	form['pw'].value = "";
	form['pw2'].value = "";

	// prevent from running this again.
	form.onsubmit = null;

	return true;
}
