
window.dpt_crossed = false;

function get_pos(obj)
{
	if (typeof obj != "object")
		obj = document.getElementById(obj);

	if (!obj)
		return false;

	var cur_left = 0, cur_top = 0;

	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			cur_left += obj.offsetLeft;
			cur_top += obj.offsetTop;

			obj = obj.offsetParent;
		}
	}
	else if (obj.x && obj.y)
	{
		cur_left += obj.x;
		cur_top += obj.y;
	}

	return new Array(cur_left, cur_top);
}

function dpt_over(ref)
{
	ref.style.background = "#ffffff url(images/rightround.gif) no-repeat center right";
	ref.style.color = "#7bb246";

	var prev = ref.previousSibling;
	while ((get_class_name(prev) != "dpt_menu" && prev.id != "dpt_first") && prev)
		prev = prev.previousSibling;
	if (prev)
		prev.style.background = "transparent url(images/leftround.gif) no-repeat center right";

	window.dpt_crossed = true;

	dpt_hide(true);

	var push = 0;
	var a_push = new Array();
	var count = 0;
	for (var i in ref.childNodes)
	{
		if (get_class_name(ref.childNodes[i]) == "dpt_in")
			for (var ii in ref.childNodes[i].childNodes)
				if (get_class_name(ref.childNodes[i].childNodes[ii]) == "dpt_in_a")
					ref.childNodes[i].childNodes[ii].style.color = "#7bb246";

		if (get_class_name(ref.childNodes[i]) == "dptclass_menu")
		{
			ref.childNodes[i].style.display = "block";
			a_push[count] = push;
			push += ref.childNodes[i].clientWidth;
			count ++;
		}
	}

	push = parseInt((ref.clientWidth / 2) - push / 2 - 5);
	var p1 = get_pos(ref);
	var p2 = get_pos("dpt_container");
	var diff = p2[0] - p1[0];
	if (push < diff)
		push = diff;

	var push_y = 32;

	var count = 0;
	var lastobj = null;
	for (var i in ref.childNodes)
	{
		if (get_class_name(ref.childNodes[i]) == "dptclass_menu")
		{
			ref.childNodes[i].style.left = (a_push[count] - (-push)) + "px";
			ref.childNodes[i].style.top = push_y + "px";
			lastobj = ref.childNodes[i];
			ref.childNodes[i].style.background = "transparent url(images/class_divider.gif) no-repeat center right";
			count ++;
		}
	}

	if (lastobj)
	{
		var edge = p2[0] - (-document.getElementById("dpt_container").clientWidth);
		var p3 = get_pos(lastobj);
		var right_pos = p3[0] - (-lastobj.clientWidth);
		lastobj.style.background = "transparent";

		if (right_pos > edge)
		{
			push -= right_pos - edge;
			var count = 0;
			for (var i in ref.childNodes)
			{
				if (get_class_name(ref.childNodes[i]) == "dptclass_menu")
				{
					var lft = a_push[count] - (-push);

					if (lft < diff)
					{
						push += 0 - (lft - diff);
						lft = a_push[count] - (-push);
					}

					if (lft - (-ref.childNodes[i].clientWidth) > edge - p1[0])
					{
						push -= edge - p2[0] - (lft - edge);
						lft = a_push[count] - (-push);
						push_y -= -16;
					}

					ref.childNodes[i].style.left = lft + "px";
					ref.childNodes[i].style.top = push_y + "px";
					count ++;
				}
			}
		}
	}
}

function dpt_out(ref)
{
	var nxt = ref.nextSibling;
	while (nxt && get_class_name(nxt) != "dpt_menu" && nxt.id != "dpt_last")
		nxt = nxt.nextSibling;
	if (nxt && nxt.id == "dpt_last")
		ref.style.background = "transparent";
	else
		ref.style.background = "transparent url(images/divider.gif) no-repeat center right";

	ref.style.color = "#f7ffef";
	window.dpt_crossed = false;

	var prev = ref.previousSibling;
	while ((get_class_name(prev) != "dpt_menu" && prev.id != "dpt_first") && prev)
		prev = prev.previousSibling;
	if (prev && prev.id == "dpt_first")
		prev.style.background = "transparent";
	else if (prev)
		prev.style.background = "transparent url(images/divider.gif) no-repeat center right";

	for (var i in ref.childNodes)
		if (get_class_name(ref.childNodes[i]) == "dpt_in")
			for (var ii in ref.childNodes[i].childNodes)
				if (get_class_name(ref.childNodes[i].childNodes[ii]) == "dpt_in_a")
					ref.childNodes[i].childNodes[ii].style.color = "#f7ffef";

	setTimeout("dpt_hide();", 200);
}

function dptclass_over(ref)
{
	window.dpt_crossed = true;
}

function dptclass_out(ref)
{
	window.dpt_crossed = false;

	setTimeout("dpt_hide();", 200);
}

function dpt_hide(is_forced)
{
	if (window.dpt_crossed !== false && !is_forced)
		return;


	var o = document.getElementById("dpt_container");
	for (var ii in o.childNodes)
	{
		if (get_class_name(o.childNodes[ii]) == "dpt_menu")
		{
			var ref = o.childNodes[ii];
			for (var i in ref.childNodes)
				if (get_class_name(ref.childNodes[i]) == "dptclass_menu")
					ref.childNodes[i].style.display = "none";
		}
	}
}

function get_class_name(ref)
{
	if (typeof ref != "object")
		ref = document.getElementById(ref);

	if (!ref)
		return false;

	if (ref.className)
		return ref.className;

	if (ref.getAttribute && ref.getAttribute("className"))
		return ref.getAttribute("className");

	if (ref.getAttribute && ref.getAttribute("class"))
		return ref.getAttribute("class");

	return false;
}

function dpt_adjust()
{
	var o = document.getElementById("dpt_container");
	for (var ii in o.childNodes)
	{
		if (get_class_name(o.childNodes[ii]) == "dpt_menu")
		{
			var ref = o.childNodes[ii];

			var nxt = ref.nextSibling;
			while (nxt && get_class_name(nxt) != "dpt_menu" && nxt.id != "dpt_last")
				nxt = nxt.nextSibling;
			if (nxt && nxt.id == "dpt_last")
				ref.style.background = "transparent";
			else
				ref.style.background = "transparent url(images/divider.gif) no-repeat center right";
		}
	}

	var w = 0;
	for (var i in o.childNodes)
		if (get_class_name(o.childNodes[i]) == "dpt_menu")
			w += o.childNodes[i].clientWidth;
	var push = parseInt((o.clientWidth - w - 5) / 2);
	o.style.paddingLeft = push + "px";
}
