function toggleVisibility(aElementId, aImageId, aToOpenSource, aToCloseSource) {

	var result = true;

	if (document.getElementById) {

		var elementStyle = document.getElementById(aElementId).style;
		var navigationArrow = document.getElementById(aImageId);

		//alert('currentDisplayStyle of ' + aElementId + ' = ' + elementStyle.display);

		if (elementStyle.display == 'block') {
			elementStyle.display = 'none';

			if (navigationArrow) {
				navigationArrow.src = aToOpenSource;
			}
		} else {
			elementStyle.display = 'block'

			if (navigationArrow) {
				navigationArrow.src = aToCloseSource;
			}
		}
		result = false;
	}
	return (result);
}

function toggleInfoVisibility(aSpanId, aToOpenSource, aToCloseSource) {

	var infoId = aSpanId + 'Info';
	var arrowId = aSpanId + 'Arrow';

	var result = toggleVisibility(infoId, arrowId, aToOpenSource, aToCloseSource);

	return (result);
}

function setInfoVisibility(aSpanId, aToOpenSource, aToCloseSource, displayType) {

	var infoId = aSpanId + 'Info';
	var arrowId = aSpanId + 'Arrow';
	var result = true;

	if (document.getElementById) {

		var elementStyle = document.getElementById(infoId).style;
		var navigationArrow = document.getElementById(arrowId);

		elementStyle.display = displayType;

		if (navigationArrow) {
			if (displayType == 'none') {
				navigationArrow.src = aToOpenSource;
			} else {
				navigationArrow.src = aToCloseSource;
			}
		}
		result = false;
	}
	return (result);
}

function elementDisplayStyle(aElementId) {

	var displayStyle = '';

	if (document.getElementById) {
		var elementStyle = document.getElementById(aElementId).style;

		displayStyle = elementStyle.display;
		//alert('displayStyle of ' + aElementId + ' = :' + displayStyle + ':');
	}

	return (displayStyle);
}

function processSpan(aSpanBase, aSpanId, aToOpenSource, aToCloseSource) {

	var result = true;

	if (document.getElementById) {

		//	Get all the spans for the span base

		var baseElement = document.getElementById(aSpanBase);
		var spans = baseElement.getElementsByTagName('span');

		var currentDisplayStyle = elementDisplayStyle(aSpanId + 'Info');

		//alert('currentDisplayStyle of ' + aSpanId + 'Info = :' + currentDisplayStyle + ':');

		if (currentDisplayStyle == 'none') {
			var spanIndex;

			for (spanIndex = 0; spanIndex < spans.length; spanIndex++) {
				if (spans[spanIndex].id != aSpanId) {
					setInfoVisibility(spans[spanIndex].id, aToOpenSource, aToCloseSource, 'none');
				}
			}
		}
		result = toggleInfoVisibility(aSpanId, aToOpenSource, aToCloseSource);
	}
	return (result);
}

