/*
 * Used to hide these items from posting to the server
 * as they are only used visually and the real data is
 * stored in a hidden field for posting.
 * @param   node   Starting Element to tunnel down through
 */
function disableCheckboxes (node) {
	for (var i=0; i<node.childNodes.length; i++) {
		if (node.childNodes[i].childNodes.length > 0) {
			disableCheckboxes (node.childNodes[i])
		} else {
			if (node.childNodes[i].type == "checkbox") {
				node.childNodes[i].disabled = false;
			}
		}
	}
}
/**
 * Toggles all of the newsletters off by setitng both the checkboxes
 * and their hidden equivalents to false
 * @param   clickedon   The checkbox that was clicked on who fired this event
 */
function unsuball_onChange (clickedon) {
	var node = document.getElementById ("NEWSLIST");
	if (node) {
		searchDOMForNewsletters (node);
	}
	clickedon.checked = true;
}
function searchDOMForNewsletters (node) {
	for (var i=0; i<node.childNodes.length; i++) {
		if (node.childNodes[i].childNodes.length > 0) {
			searchDOMForNewsletters (node.childNodes[i])
		} else {
			if (node.childNodes[i].type == "hidden") {
				node.childNodes[i].value = false;
			} else if (node.childNodes[i].type == "checkbox") {
				node.childNodes[i].checked = false;
			}
		}
	}
}
function uncheckUnsub () {
	var el = document.getElementById ("USFALL");
	el.checked = false;
}
/**
 * Shows the newsletters list
 * @param   state    true or false
 */
function showNewsletters (state) {
	if (state) {
		setDivDisplay ('newsletters','block','newsletters-closed','none');
	} else {
		setDivDisplay ('newsletters','none','newsletters-closed','block');
	}
}
/**
 * Since checkboxes do not post data if they are not checked, we need to
 * store their data into hidden fields and update that data when the 
 * checkbox's checked state chages.  This method assumes there is only one
 * other hidden field grouped with the checkbox being selecting inside a parent
 * container such as a div or li.  it finds that field and stores the value there.
 * @param   clickedon   The field clicked on
 */
function storeCheckbox (clickedon) {
	var parent = clickedon.parentNode;
	for (var i=0; i<parent.childNodes.length; i++) {
		if (parent.childNodes[i].type == "hidden") {
			parent.childNodes[i].value = clickedon.checked;
			break;
		}
	}
}

