//=============================================================================
// User interface event handlers
//
// @author      Maarten Sander
// @since       2004-08-03
// @package     ikneemmee
// @subpackage  gui
//=============================================================================

//==============================================================================
// void inm_ListItemCategorySelectionChanged(element source);
// - Selects all elements in the selected category and expands the category
//==============================================================================
function inm_ListItemCategorySelectionChanged(source, selectAll)
{
	if (!document.getElementsByTagName) return;

	// select all elements
	if (selectAll) {
		var allInputElements = document.getElementsByTagName("input");
		var curItemCat, prevItemCat, beenBusy = false;
		
		for (var i = 0; i < allInputElements.length; i++) {
			prevItemCat = curItemCat;
			curItemCat = allInputElements[i].id.split("_")[0];
	
			if (curItemCat != ("item" + source.value)) {
				if (beenBusy) break;
				else continue;
			}
		
			beenBusy = true;
			allInputElements[i].checked = source.checked;
		}
	}
	
	// expand category if necessary
	if (source.checked) {
		var categoryId = source.id;
		var categoryContainer = document.getElementById(categoryId + "Container");
		//var categoryImage     = document.getElementById("categoryImage" + categoryId);

		if (categoryContainer.style.display == "none") {
			categoryContainer.style.display = "block";
			//categoryImage.src = "/Images/ButtonCloseCategory.gif";
		}
	}
}

//==============================================================================
// void inm_ListItemSelectionChanged(element source);
// - Checks the category checkbox if item checkbox is checked
//==============================================================================
function inm_ListItemSelectionChanged(source)
{
	if (!document.getElementById) return;

	if (source.checked) {
		var categoryId = source.id.split("_")[0].substring(4, source.id.split("_")[0].length);

		categoryElement = document.getElementById("category" + categoryId).checked = true;
	}
}

//==============================================================================
// void inm_ListItemValueChanged(element source);
// - Checks the category checkbox if item checkbox is checked
//==============================================================================
function inm_ListItemValueChanged(source)
{
	if (!document.getElementById) return;

	if (source.value.length > 0) {
		var categoryId = source.id.split("_")[0].substring(4, source.id.split("_")[0].length);

		categoryElement = document.getElementById("category" + categoryId).checked = true;
	}
}

//==============================================================================
// void inm_ListItemCategoryHeaderClicked(int categoryId)
// - Toggles the list of items in this container
//==============================================================================
function inm_ListItemCategoryHeaderClicked(categoryId)
{
	if (!document.getElementById) return;
	
	var categoryContainer = document.getElementById("category" + categoryId + "Container");
	var categoryImage     = document.getElementById("categoryImage" + categoryId);

	if (categoryContainer.style.display == "none") {
		categoryContainer.style.display = "block";
		categoryImage.src = "/Images/ButtonCloseCategory.gif";
	} else {
		categoryContainer.style.display = "none";
		categoryImage.src = "/Images/ButtonOpenCategory.gif";
	}
}

//==============================================================================
// void inm_TextAreaKeyUpOrDown(element source, int limit)
// - Limits the amount of characters in a textarea
//==============================================================================
function inm_TextAreaKeyUpOrDown(source, limit)
{
	if (source.value.length >= limit) {
		source.value = source.value.substring(0, limit);
	}
}
