﻿jQuery(document).ready(function($)
{
	function setupMultipleSelectLevel(scope, level, onCheckChain) 
	{
		var atLeastOneChecked = false;
		scope.find('li.level_' + level).each(function() 
		{
			var input = $(this).children('input');
			var parent = $(input[0]).parent();
			
			input.click(function() 
			{
				var children = parent.find('ul input');
				if (this.checked) 
				{
					parent.find('> ul').show();
					parent.find('ul ul').hide();
					children.each(function() 
					{
						this.checked = false;
					});
					
					if (onCheckChain != undefined)
						onCheckChain();
				} 
				else 
				{
					parent.find('ul').hide();
					children.each(function()
					{
						this.checked = false;
					});
				}
			});
			
			var childChecked = setupMultipleSelectLevel($(this), level + 1, function() 
			{
				input[0].checked = false;
				if (onCheckChain != undefined) onCheckChain();
			});

			if (input[0].checked || childChecked) 
			{
				parent.find('> ul').show();
				atLeastOneChecked = true;
			}
		});
		
		return atLeastOneChecked;
	}

	function compactMultipleSelect(multiple_select)
	{
		multiple_select.find('li.level_0 ul').hide();
		setupMultipleSelectLevel(multiple_select, 0);
	}

	if (multi_select = $('#JobTypes_list')) compactMultipleSelect(multi_select);
	if (multi_select = $('#Industries_list')) compactMultipleSelect(multi_select);
	if (multi_select = $('#Locations_list')) compactMultipleSelect(multi_select);
	if (multi_select = $('#Salaries_list')) compactMultipleSelect(multi_select);	
});