var float_speed = 20;
var float_pix = 4;
var float_dir = 0;
var float_timer = 0;
var float_obj = false;
var float_obj_inner = false;
var float_obj_position = "";
var float_obj_showdir = 0;

var float_height = 0;
var float_width = 0;
var float_obj_height = 0;
var float_obj_width = 0;

var float_obj_notify_fn = "";

function floatThread() {
	var cancelThread = false;

	if (float_obj_showdir == 0)
	{
		if (float_obj_height > float_height)
		{
			float_obj_height = float_height;
			cancelThread = true;
		}

		if (float_obj_height < 0)
		{
			float_obj_height = 0;
			cancelThread = true;
		}

		if (float_obj_position == "fixed") float_obj_inner.style.height = float_obj_height + "px";
			else float_obj.style.height = float_obj_height + "px";
	}
	else
	{
		if (float_obj_width > float_width)
		{
			float_obj_width = float_width;
			cancelThread = true;
		}

		if (float_obj_width < 0)
		{
			float_obj_width = 0;
			cancelThread = true;
		}
		if (float_obj_position == "fixed") float_obj_inner.style.width = float_obj_width + "px";
			else float_obj.style.width = float_obj_width + "px";
	}



	if (!cancelThread)
	{
		if (float_dir == 0 && float_obj.style.visibility != "visible")
		{
			float_obj.style.visibility = "visible";
		}
		float_timer = setTimeout("floatThread()", float_speed);
	}
	else
	{
		if (float_dir == 1 && float_obj.style.visibility == "visible")
		{
			float_obj.style.visibility = "hidden";
		}

		if (float_obj_notify_fn != "")
		{
			float_fn_str = float_obj_notify_fn + "("+float_dir+")";
			setTimeout(float_fn_str, 100);
		}
		float_timer = false;
	}

	if (float_obj_showdir == 0)
	{
		if (float_dir == 0)
		{
			float_obj_height += float_pix;
		}
		else
		{
			float_obj_height -= float_pix;
		}
	}
	else
	{
		if (float_dir == 0)
		{
			float_obj_width += float_pix;
		}
		else
		{
			float_obj_width -= float_pix;
		}
	}

}


function getElementCurrentStyle(elem_obj, elem_style, elem_style_alt)
{
	var elem_style_value = ""
	if (elem_obj.currentStyle)
	{
		elem_style_value = elem_obj.currentStyle[elem_style];
		if (!elem_style_value && elem_style_alt)
		{
			elem_style_value = elem_obj.currentStyle[elem_style_alt];
		}
	}
	else if (window.getComputedStyle)
	{
		elem_style_value = document.defaultView.getComputedStyle(elem_obj,null).getPropertyValue(elem_style);
	}
	else
	{
		elem_style_value = elem_obj.style.width;
	}
	return elem_style_value;
}

function showDiv(obj_name, obj_name_inner, obj_dir) {
	if (float_timer)
	{
		return;
	}

	if (!obj_name_inner || obj_name_inner == "")
	{
		obj_name_inner = "inner";
	}

	float_obj_showdir = obj_dir;

	float_dir = 0;
	float_obj = document.getElementById(obj_name);
	float_obj_inner = document.getElementById(obj_name + "_" + obj_name_inner);
	float_height = float_obj_inner.offsetHeight;
	float_width = float_obj_inner.offsetWidth;
	float_obj_height = 0;
	float_obj_width = 0;
	//alert("Dims: " + float_width + " : " + float_height);
	float_obj_position = getElementCurrentStyle(float_obj_inner, "position");

	var middle_elem = document.getElementById(obj_name + "_" + obj_name_inner + "_middle");
	if (middle_elem)
	{
		var middle_elem_margin = getElementCurrentStyle(middle_elem, "margin-top", "marginTop");
		if (middle_elem_margin && middle_elem_margin == "-10px")
		{
			middle_elem.style.marginTop = "-" + Math.floor(middle_elem.offsetHeight / 2) + "px";
		}
	}
	float_timer = setTimeout("floatThread()", float_speed);
}

function hideDiv(obj_name, obj_name_inner, obj_dir) {
	if (float_timer)
	{
		return;
	}

	if (!obj_name_inner || obj_name_inner == "")
	{
		obj_name_inner =  "inner";
	}

	float_obj_showdir = obj_dir;

	float_dir = 1;
	float_obj = document.getElementById(obj_name);
	float_obj_inner = document.getElementById(obj_name + "_" + obj_name_inner);
	//alert(inner_obj.offsetHeight);
	float_height = float_obj_inner.offsetHeight;
	float_width = float_obj_inner.offsetWidth;
	float_obj_height = float_height;
	float_obj_width = float_width;
	//alert("Dims: " + float_width + " : " + float_height);

	float_obj_position = getElementCurrentStyle(float_obj_inner, "position");

	if (float_obj.style.visibility == "visible")
	{
		float_timer = setTimeout("floatThread()", float_speed);
	}
}

function closeDiv(obj_name, obj_name_inner)
{
	if (!obj_name_inner || obj_name_inner == "")
	{
		obj_name_inner =  "inner";
	}

	float_obj = document.getElementById(obj_name);
	float_obj_inner = document.getElementById(obj_name + "_" + obj_name_inner);

	if (float_obj)
	{
		if (float_timer) clearTimeout(float_timer);
		if (float_obj_inner)
		{
			float_obj_inner.style.visibility = "hidden";
		}
		float_obj.style.visibility = "hidden";
	}
}