/**
 * These two functions, hide_element and show_element, do exactly as they say.
 * There is no animation with these functions by themselves.
 */
function hide_element(element_name)
{
	document.getElementById(element_name).style.height="1px";
	document.getElementById(element_name).style.overflow="hidden";
	document.getElementById(element_name).style.visibility="hidden";
	document.getElementById(element_name).style.display="block";
}
function show_element(element_name)
{
	document.getElementById(element_name).style.height="auto";
	document.getElementById(element_name).style.display="inline";
	document.getElementById(element_name).style.visibility="visible";
}

/**
 * These two functions, contract_element and expand_element, do exactly as they say.
 * These functions have animation.
 */
function contract_element(element_name, element_height) {
	show_element(element_name);
	document.getElementById(element_name).style.visibility="hidden";
	document.getElementById(element_name).style.display="block";
	setTimeout("start_slide_up(\"" + element_name + "\", " + element_height + ");", 100);
	return false;
}
function expand_element(element_name, element_height) {
	hide_element(element_name);
	setTimeout("start_slide_down(\"" + element_name + "\", " + element_height + ");", 100);
	return false;
}


/**
 * These last four functions control the actual mechanism of sliding.
 */
var slide_timer;
var slide_height;
function start_slide_up(element_name, element_height)
{
	slide_height = 1+element_height;
	slide_timer = setInterval("slide_section_up(\"" + element_name + "\", " + element_height + ");", 20);
}
function slide_section_up(element_name, element_height) {
	document.getElementById(element_name).style.height = slide_height + "px";
	slide_height -= 5;
	if(slide_height <= 1)
	{
		clearInterval(slide_timer);
		setTimeout("hide_element(\""+element_name+"\")", 50);
	}
}

function start_slide_down(element_name, element_height)
{
	slide_height = 1;
	slide_timer = setInterval("slide_section_down(\"" + element_name + "\", " + element_height + ");", 20);
}
function slide_section_down(element_name, element_height) {
	document.getElementById(element_name).style.height = slide_height + "px";
	slide_height += 5;
	if(slide_height >= element_height)
	{
		clearInterval(slide_timer);
		setTimeout("show_element(\""+element_name+"\")", 50);
	}
}