var lastCollapseObjectId=-1;
var collapseObjects=new Array();
function collapse(triggerObj,destinationObj)
{
	this.vertical=true;
	this.horizontal=false;
	this.minHeight=5;
	this.minWidth=5;
	this.maxHeight;
	this.maxWidth;
	this.vertical_amount=50;
	this.horizontal_amount=40;
	this.interval=5;
	this.last_action='increasing';
	this.tObj=triggerObj;
	this.dObj=destinationObj;
	this.objectId=10;
	this.collapse=collapse;
	this.increase=increase;
	this.decrease=decrease;
	this.prepareSizeVars=prepareSizeVars;
	this.collapse(triggerObj,destinationObj);
	this.prepareSizeVars(this.minWidth,this.minHeight);
	function prepareSizeVars(minW,minH)
	{
		this.minHeight=minW;
		this.minWidth=minH;
		this.maxHeight=this.dObj.offsetHeight;
		this.maxWidth=this.dObj.offsetWidth;
	}
	function collapse(triggerObj,destinationObj)
	{
		this.objectId=(++lastCollapseObjectId);
		collapseObjects[this.objectId]=this;
		var objectId=this.objectId;
		this.tObj.onclick=function()
		{
			if(collapseObjects[objectId].last_action=='increasing')
			{
				collapseObjects[objectId].tObj.className='collapsed';
				collapseObjects[objectId].last_action='decreasing';
				collapseObjects[objectId].decrease();
			}
			else
			{
				collapseObjects[objectId].tObj.className='';
				collapseObjects[objectId].last_action='increasing';
				collapseObjects[objectId].increase();
			}
			return false;
		}
	}
	function increase()
	{
		var changed=false;
		if(this.last_action!='increasing') return false;
		if(this.vertical && (this.dObj.offsetHeight+this.vertical_amount)<this.maxHeight)
		{
			this.dObj.style.height=this.dObj.offsetHeight+this.vertical_amount+'px';
			changed=true;
		}
		else if(this.vertical) this.dObj.style.height=this.maxHeight+'px';
		
		if(this.horizontal && (this.dObj.offsetWidth+this.horizontal_amount)<this.maxWidth)
		{
			this.dObj.style.width=this.dObj.offsetWidth+this.horizontal_amount+'px';
			changed=true;
		}
		else if(this.horizontal) this.dObj.style.width=this.maxWidth+'px';
		if(changed)	setTimeout('collapseObjects['+this.objectId+'].increase()',this.interval);
	}
	function decrease()
	{
		var changed=false;
		if(this.last_action!='decreasing') return false;
		if(this.vertical && (this.dObj.offsetHeight-this.vertical_amount)>this.minHeight)
		{
			this.dObj.style.height=this.dObj.offsetHeight-this.vertical_amount+'px';
			changed=true;
		}
		else if(this.vertical) this.dObj.style.height=this.minHeight+'px';
		
		if(this.horizontal && (this.dObj.offsetWidth-this.horizontal_amount)>this.minWidth)
		{
			this.dObj.style.width=this.dObj.offsetWidth-this.horizontal_amount+'px';
			changed=true;
		}
		else if(this.horizontal) this.dObj.style.width=this.minWidth+'px';
		if(changed)	setTimeout('collapseObjects['+this.objectId+'].decrease()',this.interval);
	}
}