function toggleAllTopics() {
	var taxtypesFieldset = document.getElementById('taxtypes');
	var taxtypesArray = taxtypesFieldset.getElementsByTagName('input');
	var allTopicsField = document.getElementById('t01');
	if (allTopicsField.checked) {
		for (var i = 0; i < taxtypesArray.length; i++) {
			currField1 = taxtypesArray[i];
			currField1.checked = true;
		}
	} else {
		for (var i = 0; i < taxtypesArray.length; i++) {
			currField1 = taxtypesArray[i];
			currField1.checked = false;
		}
	}
}
function checkESubscriptionsForm() {
	isAtLeastOneChecked = false;
	var errors = 0;
	var thisForm = document.getElementById('subscribeForm');
	var taxtypesFieldset = document.getElementById('taxtypes');
	var taxtypesArray = taxtypesFieldset.getElementsByTagName('input');
	var taxpreparersFieldset = document.getElementById('taxpreparers');
	var taxpreparersArray = taxpreparersFieldset.getElementsByTagName('input');
	var emailAddr = document.getElementById('emailaddress').value;
	var emailAddrConfirm = document.getElementById('emailaddressConfirm').value;
	for (var i = 0; i < taxtypesArray.length; i++) {
		currInput1 = taxtypesArray[i];
		if (currInput1.checked) {
			isAtLeastOneChecked = true;
			break;
		}
	}
	for (var j = 0; j < taxpreparersArray.length; j++) {
		currInput2 = taxpreparersArray[j];
		if (currInput2.checked) {
			isAtLeastOneChecked = true;
			break;
		}
	}
	if (isAtLeastOneChecked == false) {
		alert('Please be sure to select at least one topic.');
		errors = errors + 1;
	}
	
	if (!checkEmailAddress(emailAddr)) {
		alert('Please provide a valid email address.');
		document.getElementById('emailaddress').value = '';
		errors = errors + 1;
	}

	if (checkEmailAddress(emailAddr)) {
		if (!emailAddrConfirm) {
			alert('Please confirm email address.');
			errors = errors + 1;
		} else if (!checkEmailAddress(emailAddrConfirm)) {
			alert('The e-mail addresses you entered do not match. Please try again.');
			errors = errors + 1;
		}
	}
	
	if (checkEmailAddress(emailAddrConfirm)) {
		if (!matchEmailAddresses(emailAddr,emailAddrConfirm)) {
			alert('The e-mail addresses you entered do not match. Please try again.');
			document.getElementById('emailaddress').value = '';
			document.getElementById('emailaddressConfirm').value = '';
			errors = errors + 1;
		}
	}

	if (errors > 0) {
		return false;
	}

	thisForm.submit();
}
function checkESubscriptionsUnsubscribeForm() {
	var errors = 0;
	var thisForm = document.getElementById('subscribeForm');
	var emailAddr = document.getElementById('emailaddress').value;
	
	if (!checkEmailAddress(emailAddr)) {
		alert('Please provide a valid email address.');
		errors = errors + 1;
	}

	if (errors > 0) {
		return false;
	}

	thisForm.submit();
}
function checkUnsubscribeForm() {
	var errors = 0;
	var thisForm = document.getElementById('unsubscribeForm');
	var emailAddr = document.getElementById('emailaddress2').value;
	if (!checkEmailAddress(emailAddr)) {
		alert('Please provide a valid email address.');
		errors = errors + 1;
	}

	if (errors > 0) {
		return false;
	}
	thisForm.submit();
	
}
function checkEmailAddress(email) {
	var email2check = email;
	var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (email2check == null || email2check == '') {
		return false;
	}
	if (regEx.test(email2check) == false) {
		return false;
	}
	return true;
}
function matchEmailAddresses(email,emailConfirm) {
	var email1 = email;
	var email2 = emailConfirm;

	if (email1 != email2) {
		return false;
	}
	return true;
}
