function addError(errorDivId, errorText) {
	$(errorDivId).innerHTML=errorText;
	$(errorDivId).style.display='';
}
function checkPw() {
	var p1 = $('u_password1');
	var p2 = $('u_password2');
	if(p1.value.length < 6 || p1.value != p2.value) {
		addError('pwError', 'Your passwords are too short or do not match.');
		p1.focus();
		p1.select();
		$('regformsubmit').disabled = true;
		return false;
	}
	else Effect.Fade('pwError');
	return true;
}

function isEmpty(element) {
	var e = $(element);
	return e.value.length < 1;
}

function checkForm() {	
	$('regformsubmit').disabled = false;
	/* check the Terms of Service checkbox */
	if ($('termsOfService').checked == true) {$('regformsubmit').disabled = false;}
	if ($('termsOfService').checked == false) {$('regformsubmit').disabled = true;}
	/* check required fields */
	var requiredFields = new Array('d_firstname', 'd_lastname', 'r_name', 'u_firstname', 'u_lastname', 'u_email', 'u_password1', 'u_password2');
	for(var i = 0; i < requiredFields.length; i++ ) {
		if(requiredFields[i] != 'r_name') {
			if(isEmpty(requiredFields[i])) {
				$('regformsubmit').disabled = true;
				break;
			}
		}
	}
	if ($('nametakenerror').innerHTML.indexOf("Sorry") != -1) $('regformsubmit').disabled = true;
	if ($('regformsubmit').disabled == false) checkPw();
}

function validateForm() {
	new Ajax.Updater('dummy', '/registries/validateRegForm', {evalScripts: true});
	if(!checkPw()) return false;
	return true;
}

function updateField() {
	new Ajax.Updater('nametakenerror', '/registries/validateRegname', {parameters: Form.Element.serialize('r_name')});
	//$('regformsubmit').disabled = true;
}