all_checked = new Array();
function toggleAllBoxes(formName, chkBoxBaseName, maxIdx)
{
	elements = maxIdx+1;
	//elements = document.forms[formName].elements.length+1;
	all_checked[chkBoxBaseName] = !document.forms[formName].elements[chkBoxBaseName + 'Main'].checked;
	
	for (i=-1; i < elements; i++)
	{
		chkBox = document.forms[formName].elements[(chkBoxBaseName + '[' + i + ']')];

		if (chkBox)
		{
			if (all_checked[chkBoxBaseName] == 1 || all_checked[chkBoxBaseName] == 'undefined')
			{
				chkBox.checked = false;
			}
			else
			{
				chkBox.checked = true;
			}
		}
	}
	
	if (all_checked[chkBoxBaseName])
		return all_checked[chkBoxBaseName] = 0;
	else
		return all_checked[chkBoxBaseName] = 1;
}

function checkBoxParent(formName, chkBoxBaseName)
{
	clearField('searchstr');
	
	chkBoxParent = document.forms[formName].elements[(chkBoxBaseName + 'Main')];
	atLeastOneChecked = false;
	
	if (!chkBoxParent.checked)
	{
		all_checked[chkBoxBaseName] = 1;
		chkBoxParent.checked = true;
		return;
	}
	
	elements = document.forms[formName].elements.length+1;
	
	for (i=-1; i < elements; i++)
	{
		chkBox = document.forms[formName].elements[(chkBoxBaseName + '[' + i + ']')];

		if (chkBox && chkBox.checked)
			atLeastOneChecked = true;
	}
	
	if (chkBoxParent.checked && !atLeastOneChecked)
	{
		all_checked[chkBoxBaseName] = 0;
		chkBoxParent.checked = false;
	}
}

