	var minimize = new function()
	{
		this.speed = 10;
		this.step = 20;
		this.minHeight = 1;

		this.acceleration = false;

		this.show = new arrList();
		this.hide = new arrList();
		this.timeOut = null;

		this.checkState = function(obj)
		{
			var height = getObjHeight(obj);
			var maxHeight = getObjScrollHeight(obj);

			/*try
			{
				if(obj.parentNode.parentNode.style.display == "none")
					return "hide";
			}
			catch (e){}*/
			if(height == maxHeight)
				return "show";
			if(height <= minimize.minHeight)
				return "hide";
			if(minimize.show.indexOf(obj) < 0)
				return "hide";
			return "show";
		}

		this.reverseObj = function(obj)
		{
			if(minimize.checkState(obj) == "show")
				minimize.hideObj(obj);
			else minimize.showObj(obj);
		}

		this.reverseObjOne = function(obj)
		{
			if(minimize.checkState(obj) == "show")
				minimize.hideObj(obj);
			else
			{
				minimize.showObj(obj);
				minimize.closeOther(obj);
			}
		}

		this.closeOther = function(obj)
		{
			var tbodyElement = obj.parentNode.parentNode.parentNode;
			var trElement = tbodyElement.firstChild;
			while(trElement != null)
			{
				if(trElement.firstChild.firstChild.tagName == "DIV")
					if(minimize.checkState(trElement.firstChild.firstChild) == "show")
						minimize.hideObj(trElement.firstChild.firstChild);

				trElement = trElement.nextSibling;
			}
		}

		this.showObj = function(obj)
		{
			minimize.hide.remove(obj);
			if(minimize.show.indexOf(obj) < 0)
				minimize.show.add(obj);

			if(minimize.show.count() > 0 || minimize.hide.count() > 0)
				if(minimize.timeOut == null)
					minimize.timeOut = setTimeout("minimize.runMinimize()",minimize.speed);
		}
		this.hideObj = function(obj)
		{
			minimize.show.remove(obj);
			if(minimize.hide.indexOf(obj) < 0)
				minimize.hide.add(obj);

			if(minimize.show.count() > 0 || minimize.hide.count() > 0)
				if(minimize.timeOut == null)
					minimize.timeOut = setTimeout("minimize.runMinimize()",minimize.speed);
		}
		this.runMinimize = function()
		{
			var i;
			for(i=0;i<minimize.show.count();i++)
			{
				try
				{
					var obj = minimize.show.getAt(i);

					/*if(obj.parentNode.parentNode.style.display == "none")
						obj.parentNode.parentNode.style.display = "";*/

					var height = getObjHeight(obj);
					var maxHeight = getObjScrollHeight(obj);

					var nextStep = minimize.step;
					if(minimize.acceleration)
						nextStep = Math.ceil((maxHeight-height)/minimize.step);

					if(height+nextStep >= maxHeight)
					{
						obj.style.height = "";
						minimize.show.removeAt(i--);

						/*try
						{
							if(obj.parentNode.parentNode.objName != undefined)
								lastObj.setObj(obj);
						}
						catch (e){};*/
					}
					else
					{
						obj.style.height = height+nextStep;
						if(obj.style.visibility == "hidden")
							obj.style.visibility = "visible";
					}
					obj.scrollTop = maxHeight;

					var opacity = Math.floor(getObjHeight(obj)/maxHeight*100);
					if(opacity < 50)
						opacity = 50;
					setOpacity(obj,opacity);
				}
				catch (e)
				{
					minimize.show.removeAt(i--);
				}
			}

			for(i=0;i<minimize.hide.count();i++)
			{
				try
				{
					var obj = minimize.hide.getAt(i);
					var height = getObjHeight(obj);
					var maxHeight = getObjScrollHeight(obj);

					var nextStep = minimize.step;
					if(minimize.acceleration)
						nextStep = Math.ceil(height/minimize.step);

					if(height-nextStep <= minimize.minHeight)
					{
						obj.style.height = minimize.minHeight;
						if(obj.nextSibling != null)
							obj.nextSibling.style.display = "none";
						obj.style.display = "none";
						//obj.parentNode.parentNode.style.display = "none";
						minimize.hide.removeAt(i--);
					}
					else
					{
						obj.style.height = height-nextStep;
					}
					obj.scrollTop = maxHeight;

					var opacity = Math.floor(getObjHeight(obj)/maxHeight*100);
					if(opacity < 50)
						opacity = 50;
					setOpacity(obj,opacity);
				}
				catch (e)
				{
					minimize.hide.removeAt(i--);
				}
			}

			if(minimize.show.count() > 0 || minimize.hide.count() > 0)
				minimize.timeOut = setTimeout("minimize.runMinimize()",minimize.speed);
			else
			{
				clearTimeout(minimize.timeOut);
				minimize.timeOut = null;
			}
		}
	}