var ArgumentList = new Class
(
	{
		initialize: function(element)
		{
			this.element = element;
			this.list = $(element.id + 'List');
			if($defined(this.list))
			{
				this.list.doHide = 0;
				this.list.addListener('mouseover', this.showArguments.bindWithEvent(this, [this.list]));
				this.list.addListener('mouseout', this.hideArguments.bindWithEvent(this, [this.list]).bind(this));
				this.element.addListener('mouseover', this.showArguments.bindWithEvent(this, [this.list]));
				this.element.addListener('mouseout', this.hideArguments.bindWithEvent(this, [this.list]).bind(this));
			}
		},

		showArguments: function(e, list)
		{
			list.doHide++;
			list.removeClass('hidden');
		},

		hideArgumentsDelayed: function(list)
		{
			if($defined(list) && list.doHide == 0)
			{
				list.addClass('hidden');
			}
		},

		hideArguments: function(e, list)
		{
			list.doHide--;
			(function(){this.hideArgumentsDelayed(list)}).delay(50, this);
		}
	}
);


window.addEvent('load', function() {
	$$('.filterArgumentsButton').each(function(element)
	{
		new ArgumentList(element);
	}
	);
});
