var is_ie = document.all && document.getElementById
var is_ns = document.getElementById && !document.all
var debug_el;

function ge(name)
{
	if (document.getElementById)
	{
		return document.getElementById(name);
	}
	else if (document.all)
	{
		return document.all[name];
	}
	else if (document.layers)
	{
		return document.layers[name];
	}
	return null;
}

function switch_section(section, visible, animate)
{
	if (!animate)
	{
		if (visible)
		{
			block_element(section + "_block");
			hide_element(section + "_label");
		}
		else
		{
			hide_element(section + "_block");
			inline_element(section + "_label");
		}
		return false;
	}

	var block_el = ge(section + "_block");
	block_element(block_el);
	if (!block_el.full_size)
		block_el.full_size = block_el.offsetHeight;
	block_el.style.height = 0;

	var label_el = ge(section + "_label");
	if (label_el && !label_el.full_size)
		label_el.full_size = label_el.offsetHeight;

	switch_section_animate(section, 10, visible);

	return false;
}

function switch_section_animate(section, amount, visible)
{
	var block_el = ge(section + "_block");
	if (!block_el) { alert("Can't find " + section + "_block"); return; }
	var label_el = ge(section + "_label");
	if (!label_el) { alert("Can't find " + section + "_label"); return; }

	if (amount > 100)
		amount = 100;

	percent = amount / 100;
	if (visible)
	{
		block_el.style.opacity = percent;
		label_el.style.opacity = 1 - percent;
		block_el.style.height = block_el.full_size * percent;
		label_el.style.height = label_el.full_size * (1 - percent);
	}
	else
	{
		label_el.style.opacity = percent;
		block_el.style.opacity = 1 - percent;
		label_el.style.height = label_el.full_size * percent;
		block_el.style.height = block_el.full_size * (1 - percent);
	}

	if (amount >= 100)
		return true;

	amount = amount + 8;
	if (!setTimeout("switch_section_animate('" + section + "', " + amount + ", " + (visible ? "true" : "false") + ")", 25))
		alert("Error setting timeout!");

	return true;
}

function hide_element(name)
{
	if (typeof(name) == "string")
		var el = ge(name);
	else
		var el = name;
	if (el) el.style.display = "none";
}

function block_element(name)
{
	if (typeof(name) == "string")
		var el = ge(name);
	else
		var el = name;
	if (el) el.style.display = "block";
}

function inline_element(name)
{
	if (typeof(name) == "string")
		var el = ge(name);
	else
		var el = name;
	if (el) el.style.display = "inline";
}

function row_element(name)
{
	if (typeof(name) == "string")
		var el = ge(name);
	else
		var el = name;
	if (el) el.style.display = "";
}

function toggle_row(id, on)
{
	if (on)
		row_element(id);
	else
		hide_element(id);
}

function striptags(el)
{
	return el.innerHTML.replace(/<[^>]+>/g,"");
}
