jQuery(document).ready(function($) 
{
	$('.peekaboo_link').click(function(e)
	{
		e.preventDefault();

		var name = get_name(this);

		var link = $('.peekaboo_link.peekaboo-'+name);

		if (name == 'all')
		{
			var content = $('.peekaboo_content');

			/* check if at least one is hidden */
			if (content.filter(':hidden').length) 
			{
				link.add(content).removeClass('peekaboo_onhide').addClass('peekaboo_onshow');

				content.show();
				$('.peekaboo_link').children().hide();
				$('.peekaboo_link').children('.peekaboo_onshow').show();
			}
			else 
			{
				link.add(content).removeClass('peekaboo_onshow').addClass('peekaboo_onhide');

				content.hide();
				$('.peekaboo_link').children().hide();
				$('.peekaboo_link').children('.peekaboo_onhide').show();
			}
		}
		else
		{
			var content = $('.peekaboo_content.peekaboo-'+name);
			
			if (content.filter(':visible').length) 
			{
				link.add(content).removeClass('peekaboo_onshow').addClass('peekaboo_onhide');
				
				content.hide();
				link.children().hide();
				link.children('.peekaboo_onhide').show();
			}
			else 
			{
				link.add(content).removeClass('peekaboo_onhide').addClass('peekaboo_onshow');
				
				content.show();
				link.children().hide();
				link.children('.peekaboo_onshow').show();
			}

			/* check if at least one is hidden */
			if ($('.peekaboo_content:hidden').length)
			{
				$('.peekaboo_link.peekaboo-all').children().hide();
				$('.peekaboo_link.peekaboo-all').children('.peekaboo_onhide').show();
			}

			/* check if all are visible */
			if (!$('.peekaboo_content:hidden').length)
			{
				$('.peekaboo_link.peekaboo-all').children().hide();
				$('.peekaboo_link.peekaboo-all').children('.peekaboo_onshow').show();
			}
		}
	});

	$('.peekaboo_link').each(function(e)
	{
		var name = get_name(this);

		var content = $('.peekaboo_content.peekaboo-'+name);

		if (content.find(':visible').length) 
		{
			$(this).children().hide();
			$(this).children('.peekaboo_onshow').show();
		}
		else 
		{
			$(this).children().hide();
			$(this).children('.peekaboo_onhide').show();
		}
	});

	function get_name(elem)
	{
		// try
		// return $(elem).attr('class').match(/peekaboo-(\w*)/i)[1];

		var css_class = $(elem).attr('class').split(' ');

		css_class = $.grep(css_class,function(e,i)
		{
			return (e.substr(0,9) == 'peekaboo-');
		});

		return css_class[0].split('-')[1];
	}
});
