function displaySubMenu(source, category) {
	source.blur();
	// Hide
	if ($(source).getLeft() == $('SubMenuContainer').getLeft() && $('SubMenuContainer') && $('SubMenuContainer').getStyle('opacity') > 0) {
		var fx = new Fx.Style('SubMenuContainer', 'opacity', {'duration' : 100});
		fx.start(0);
		return;
	}
	if ($('SubMenuContainer').getStyle('opacity') > 0 && $('SubMenuContainer').getStyle('display') != 'none') {
		// Hide first, then display
		var fx = new Fx.Style('SubMenuContainer', 'opacity', {'duration' : 100});
		fx.start(0).chain(function () {
			displaySubMenuCallback(source, category);
		});
	} else {
		// Display directly
		displaySubMenuCallback(source, category);
	}
}

function displaySubMenuCallback(source, category) {
	if (!$('SubMenuContainer') || !$('SubMenu') || !source || !$(category)) return;
	$('SubMenu').getChildren().each(function(element) {
		element.setStyle('display', 'none');
	});
	$('SubMenuContainer').setStyle('left', $(source).getLeft());
	$('SubMenuContainer').setOpacity(0);
	$('SubMenuContainer').setStyle('display', '');
	$(category).setStyle('display', '');
	var fx = new Fx.Style('SubMenuContainer', 'opacity', {'duration' : 100});
	fx.start(0, 1);
}