// Open a part (causes all the others to close)
function openPart(partNumber)
{			
	// Check that the part exists
	if (!partExists(partNumber))
		return;
	
	$('.pageContainer').addClass('pageContainerCollapsed'); // Close all parts
	$("#part" + partNumber).removeClass('pageContainerCollapsed'); // Open the requested one
}

function partExists(partNumber)
{
	var partId = "#part" + partNumber;
	return $(partId).length == 1;		
}

// Toggle a part (causes all the others to close)
function togglePart(partNumber)
{		
	if (!partExists(partNumber))
		return;
		
	var currentlyOpen = $("#part" + partNumber).hasClass('pageContainerCollapsed') == false;		
	
	// Close all parts and subparts
	$('.pageContainer').addClass('pageContainerCollapsed');
	$('.subpart').removeClass('expanded');
		
	if (!currentlyOpen)
	{
		// Open the requested one if it wasn't already open	
		$("#part" + partNumber).removeClass('pageContainerCollapsed'); 
	}	
}

function openSubpart(number)
{	
	if (!partExists(number))
		return;

	var partId = '#part' + number;
	var partContentId = partId + "content";		
	
	if ($(partId).attr('loaded') != 'true')	
	{
		// Show loading image
		$('#loading' + number).show();		
		
		// Get URL for ajax load
		var url = $(partId).attr("url");		
		
		// Perform ajax load for the selected part if we're opening the holder
		if ($(partId).hasClass('expanded') == false)
		{
			$.get(url, function(data) {
				$(partContentId).html(data);
			});
		}		
		
		// Set a flag so that this subpart doesn't have to be loaded again
		$(partId).attr('loaded', 'true');
		$('#loading' + number).hide();		
	}
	
	// Open the parent part if it's not already open
	openPart($(partId).attr("parent"));
	
	// Show the item (hide all the others)
	var currentlyOpen = $(partId).hasClass('expanded');
	$('.subpart').removeClass('expanded');
	
	if (!currentlyOpen)
		$(partId).addClass('expanded');	
}