var lastDesc, lastService;

// general purpose function to determine the position of an HTML element
function getElementPosition(element) {
	var offsetTop = 0, offsetLeft = 0;
	
	while (element) {
		offsetLeft += element.offsetLeft * 1;
		offsetTop += element.offsetTop * 1;
		element = element.offsetParent;
	}
	
	return {x : offsetLeft, y : offsetTop};
}

function showDescription(service, descriptionId) {
	var desc = document.getElementById(descriptionId);
	
	if (lastService) {
		if (lastDesc)
			lastDesc.style.display = "none";
		lastService.className = "serviceName";
	}
	
	lastService = service;
	lastDesc = desc;
	
	service.className = "currentServiceName";
	
	if (desc) {
		desc.style.display = "block";
		desc.style.position = "relative";
		desc.style.marginTop = "0px";
		
		var descTop = (getElementPosition(service).y - getElementPosition(service.parentNode.parentNode).y);
		var height = desc.parentNode.currentStyle ? parseInt(desc.parentNode.currentStyle.height) :
			parseInt(window.getComputedStyle(desc.parentNode, "").getPropertyValue("height"));
			
		if (descTop + desc.offsetHeight > height) {
			descTop = height - desc.offsetHeight;
		}
			
		desc.style.top = descTop + "px";
	}
}