$(document).ready
(
	function()
	{
		if($('.dependent-hidden').size() > 0)
		{
			$.each
			(
				$('.dependent-hidden'),
				function()
				{
					$(this).hide();
				}
			);
		}
		
		if($(triggers).size() > 0)
		{
			var selects = $('select');
	
			$.each
			(
				selects,
				function()
				{
					var elementID = this.id;
					var element = $('#' + elementID);
	
					element.change
					(
						function()
						{
							toggleQuestions(elementID, $(element).val())
						}
					);
				}
			);
			
			var radio = $('input:radio');
			
			$.each
			(
				radio,
				function()
				{
					var elementID = this.name;
					var element = $('#' + this.id);
	
					element.click
					(
						function()
						{
							toggleQuestions(elementID, $(element).val())
						}
					);
				}
			);
			
			var checkbox = $('input:checkbox');
			
			$.each
			(
				checkbox,
				function()
				{
					var elementID = this.name;
					var element = $('#' + this.id);
	
					element.click
					(
						function()
						{
							var value = $(element).val();

							if(! element.is(':checked'))
							{
								value = '';
							}
							
							toggleQuestions(elementID, value)
						}
					);
				}
			);
		}
	}
);

function toggleQuestions(elementID, value)
{
	if(elementID in triggers)
	{
		$.each
		(
			triggers[elementID],
			function()
			{
				$.each
				(
					this.questions,
					function()
					{
						var dependentID = 'dependent-' + parseInt(this);
						var dependentDiv = $('#' + dependentID);
						
						if(dependentDiv.size() > 0)
						{
							dependentDiv.fadeOut('slow');
						}
					}
				);
			}
		);
		
		$.each
		(
			triggers[elementID],
			function()
			{
				if(this.trigger == value)
				{
					$.each
					(
						this.questions,
						function()
						{
							var dependentID = 'dependent-' + parseInt(this);
							var dependentDiv = $('#' + dependentID);
							
							if(dependentDiv.size() > 0)
							{
								dependentDiv.fadeIn('slow');
							}
						}
					);			
				}
			}
		);
	}
}		