function findItemId(node) {
	var itemId = node.getAttribute('bmi:itemId');
	
	if (itemId == null) {
		if (node.getParent() != null) {
			return findItemId(node.getParent());
		} else {
			return null;
		}
	} else {
		return itemId;
	}
}

function collapseItem(event) {
	var targetNode = event.target;
	var itemId = findItemId(event.target);
	var itemNode = $('ExpandingItem' + itemId);
	var itemDescriptionNode = $("LongDescription" + itemId);
	var clearBreakNode = $('ClearBreak' + itemId);
	var slideInFx = new Fx.Slide(
		itemDescriptionNode,
		{
			mode: 'vertical'
		}
	);
	
	slideInFx.slideOut();
	itemNode.removeEvent("click", collapseItem);
	itemNode.addEvent("click", expandItem);
}

function expandItem(event) {
	var targetNode = event.target;
	var itemId = findItemId(event.target);
	var itemNode = $('ExpandingItem' + itemId);
	var itemDescriptionNode = $("LongDescription" + itemId);
	var clearBreakNode = $('ClearBreak' + itemId);
	var slideInFx = new Fx.Slide(
		itemDescriptionNode,
		{
			mode: 'vertical'
		}
	);
	
	slideInFx.slideIn();
	itemNode.removeEvent("click", expandItem);
	itemNode.addEvent("click", collapseItem);
}

function prepareExpandingItems() {
	$$('.ExpandingSection').each(
		function(item, index, array) {
			var itemId = findItemId(item);
			var itemNode = $('ExpandingItem' + itemId);
			var descriptionNode = $('LongDescription' + itemId);
			var hideFx = new Fx.Slide(descriptionNode);
			hideFx.hide();
			itemNode.addEvent("click", expandItem);
		}
	);
}

window.addEvent(
	'domready',
	prepareExpandingItems
);

