function validate() {
	if (!validate_email(document.forms["sign_up"].ea.value)) {
		alert(kEmailAddress);
		document.forms["sign_up"].ea.focus();
		return false;
	}
	if (field_is_empty(document.forms["sign_up"].pw, kPassword)) return false;
	if(document.forms["sign_up"].pw.value != document.forms["sign_up"].cp.value) {
		alert(kPasswordMatch);
		document.forms["sign_up"].pw.focus();
		return false;
	}
	if (!document.forms["sign_up"].ts.checked) {
		alert(kTermsOfService);
		document.forms["sign_up"].ts.focus();
		return false;
	}
	var password = document.forms["sign_up"].pw.value;
	document.forms["sign_up"].h.value = hex_sha1(password);
	document.forms["sign_up"].pw.value = encode_password(password);
	document.forms["sign_up"].cp.value = "";
	return true;
}
