// blank line needed for js concatenation
var SearchBox =
{
	rgChainPattern:	/rg.+/,

	init: function(element)
	{
		this.element = $(element)
		window.setTimeout(this.registerTriggers.bind(this), 100);
	},

	registerTriggers: function()
	{
		this.element.select('li.rule-group').each(function(ruleGroup)
		{
			var rgChain = Element.classNames(ruleGroup).find(this.rgChainPattern.test.bind(this.rgChainPattern));
			var inputs = this.element.select('li.rule-group.' + rgChain + ' input');
			if (inputs.length > 0 && Element.hasClassName(inputs[0], 'all') && inputs[0].type == 'checkbox')
			{
				var allInput = inputs.shift();
				var allChangeFunc = function()
				{
					if (allInput.checked)
					{
						inputs.each(function(input)
						{
							input.checked = false;
						});
					}
				};
				Event.observe(allInput, 'click', allChangeFunc);
				Event.observe(allInput, 'change', allChangeFunc);
				inputs.each(function(input, index)
				{
					var func = function()
					{
						var noneChecked = true;
						inputs.each(function(input, index)
						{
							if (input.checked)
								noneChecked = false;
						});
						allInput.checked = noneChecked;
					};
					Event.observe(input, 'click', func);
					Event.observe(input, 'change', func);
				});
			}
		}.bind(this));
	}
};
