function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

function validateAbstract() {
	if (!ValidText(document.getElementById('first_name'), true, 'First name ')) { return false; }
	if (!ValidText(document.getElementById('last_name'), true, 'Last name ')) { return false; }
	if (!ValidText(document.getElementById('email'), true, 'Email ')) { return false; }
	if (!ValidText(document.getElementById('school'), true, 'School ')) { return false; }

	if (!ValidText(document.getElementById('title'), true, 'Title ')) { return false; }
	if (!ValidText(document.getElementById('abstract'), true, 'Abstract ')) { return false; }

	var typeValue;
	var typeList = document.submit_abstract.atype;
	for ( var i = 0; i < typeList.length; i++ ) {
		if ( typeList[i].checked) {
			typeValue = typeList[i].value;
		}
	}
	if ( typeValue == undefined ) { alert("Please select an abstract type (poster or presentation)."); return false; }

	document.submit_abstract.submit();
}

function validateConference() {

	if (!ValidText(document.getElementById('personal_title'), true, 'Personal title ')) { return false; }
	if (!ValidText(document.getElementById('first_name'), true, 'First name ')) { return false; }
	if (!ValidText(document.getElementById('last_name'), true, 'Last name ')) { return false; }
	if (!ValidEmail(document.getElementById('email'), true, 'Email ')) { return false; }

	var typeValue;
	var typeList = document.conference_registration.mtype;
	for ( var i = 0; i < typeList.length; i++ ) {
		if ( typeList[i].checked) {
			typeValue = typeList[i].value;
		}
	}
	if ( typeValue == undefined ) { alert("Please select a membership type (student or professional)."); return false; }

	if (!ValidText(document.getElementById('professional_title'), true, 'Professional title ')) { return false; }
	if (!ValidText(document.getElementById('school'), true, 'School / affiliation ')) { return false; }
	//if (!ValidText(document.getElementById('interests'), true, 'Research interests ')) { return false; }

	if (!ValidText(document.getElementById('user_name'), true, 'User name ')) { return false; }
	if (!ValidText(document.getElementById('pass1'), true, 'Password ')) { return false; }
	if (!ValidText(document.getElementById('pass2'), true, 'Confirm password ')) { return false; }
	if ( document.getElementById('pass1').value != document.getElementById('pass2').value ) { 
		alert("The passwords do not match. Please try again.");
		document.getElementById('pass1').value = '';
		document.getElementById('pass2').value = '';
		document.getElementById('pass1').focus();
		return false;
	}

	document.conference_registration.submit();
}

function validateMembership() {

	if (!ValidText(document.getElementById('personal_title'), true, 'Personal title ')) { return false; }
	if (!ValidText(document.getElementById('first_name'), true, 'First name ')) { return false; }
	if (!ValidText(document.getElementById('last_name'), true, 'Last name ')) { return false; }
	if (!ValidText(document.getElementById('email'), true, 'Email ')) { return false; }

	var typeValue;
	var typeList = document.membership_registration.mtype;
	for ( var i = 0; i < typeList.length; i++ ) {
		if ( typeList[i].checked) {
			typeValue = typeList[i].value;
		}
	}
	if ( typeValue == undefined ) { alert("Please select a membership type (student or professional)."); return false; }

	if (!ValidText(document.getElementById('professional_title'), true, 'Professional title ')) { return false; }
	if (!ValidText(document.getElementById('school'), true, 'School / affiliation ')) { return false; }
	//if (!ValidText(document.getElementById('interests'), true, 'Research interests ')) { return false; }

	if (!ValidText(document.getElementById('user_name'), true, 'User name ')) { return false; }
	if (!ValidText(document.getElementById('pass1'), true, 'Password ')) { return false; }
	if (!ValidText(document.getElementById('pass2'), true, 'Confirm password ')) { return false; }
	if ( document.getElementById('pass1').value != document.getElementById('pass2').value ) { 
		alert("The passwords do not match. Please try again.");
		document.getElementById('pass1').value = '';
		document.getElementById('pass2').value = '';
		document.getElementById('pass1').focus();
		return false;
	}

	document.membership_registration.submit();
}

function validatePayMeth(url) {
	var typeValue;
	var typeList = document.registration.pay_meth;
	for ( var i = 0; i < typeList.length; i++ ) {
		if ( typeList[i].checked) {
			typeValue = typeList[i].value;
		}
	}

	if ( typeValue == "professor" ) { 
		if (!ValidText(document.getElementById('professor'), true, 'Name of Professor ')) { return false; }
		if ( document.getElementById('professor').value == "Name of Professor" )          { alert("'Name of Professor' is required."); return false; }
	}

	if ( typeValue == "paypal" ) { document.location.href = url; }
	else                         { document.registration.submit(); }

}

function setFocus() {
	document.submit_abstract.first_name.focus();
}

function setFocusConference() {
	document.conference_registration.personal_title.focus();
}

function setFocusMembership() {
	document.membership_registration.personal_title.focus();
}

