$(document).ready
(
	function()
	{
		// functions
		var handleMainTriggerClick;
		var handleSubTriggerClick;
		var processShowHide;
		var toggle;
		
		// variables
		var mainTriggerName;
		var mainPanelName;
		var subTriggerName;
		var subPanelName;

		mainTriggerName = "show_hide_main_trigger";
		mainPanelName = "show_hide_main_panel";
		subTriggerName = "show_hide_sub_trigger";
		subPanelName = "show_hide_sub_panel";

		handleMainTriggerClick = function()
		{
			processShowHide(this, mainPanelName);
		};

		handleSubTriggerClick = function()
		{
			processShowHide(this, subPanelName);
		};

		toggle = function(element)
		{
			if ($(element).hasClass("shown"))
			{
				$(element).removeClass("shown");
			}
			else
			{
				$(element).addClass("shown");
			}
		};
		
		processShowHide = function(element, correspondingPanelName)
		{
			// show/hide trigger element
			toggle(element);
			toggle($(element).next("." + correspondingPanelName));
		};


		$("." + mainTriggerName).click(handleMainTriggerClick);
		$("." + subTriggerName).click(handleSubTriggerClick);
	}
);
