var CHOCRI = (function(CHOCRI, $) {
CHOCRI.designer = (function() {

var mode = 'graphic',
	switchDisplayMode,
	setUp,
	load,
	refreshSidebarInfos;
	//wrapMixAction;

switchDisplayMode = function( new_mode, save ) {
	$('#mix-' + mode + '-display').hide();
	$('#show-' + mode).removeClass('active');

	if ( new_mode === null ) {
		mode = 'graphic';
	} else {
		mode = new_mode;
	}

	$('#mix-' + mode + '-display').show();
	$('#show-' + mode).addClass('active');

	if (save) {
		$.cookie('designer_display', mode, { path: '/' });
	}
};

// Mix Sidebar aktualisieren, wird bei AJAX Anfragen gebraucht
refreshSidebarInfos = function() {
	switchDisplayMode($.cookie('designer_display'), false);
	// Anzahl der noch verfuegbaren Zeichen im Etikett aktualisieren.
	// Nicht so schoen, aber funktioniert.
	$('#mix-label-form input[type=text]').trigger('keyup');
};

// Wrapper um einen Link, der mit AJAX den Request absetzt und den aktuellen Mix
// in der Sidebar aktualisiert
/*
wrapMixAction = function( url, params ) {
	$.post(url, params,
		function(data) {
			$('#mix').replaceWith(data);
			refreshSidebarInfos();
		},
		"html"
	);
	return false;
};
*/

setUp = function() {
	// zeige Etikettformular
	$('#mix-label').live('click', function() {
		$(this).slideUp();
		$('#mix-label-form').slideDown();
		return false;
	});

	// zeige Etikettformular beim Aendern - Button
	$('#mix-changelabel').live('click', function() {
		$('#mix-label-display').slideUp();
		$('#mix-label-form').slideDown();
		return false;
	});

	// Event handler fuer restliche Zeichen im Etikett
	$('#mix-label-form input[type=text]').live('keyup', function() {
		$(this).next().find('span:first').text(25 - $(this).val().length);
		return false;
	});

	// Wechsle zur Textansicht des aktuellen Mix
	$('#show-text').live('click', function() {
		switchDisplayMode('text', true);
		return false;
	});

	// Wechsle zur grafischen Ansicht des aktuellen Mix
	$('#show-graphic').live('click', function() {
		switchDisplayMode('graphic', true);
		return false;
	});

	// Zutaten beim Klick hinzufuegen und Sidebar aktualisieren
	/*$('#ingredients').delegate("a.ing_add", "click", function() {
		return wrapMixAction($(this).attr('href'), {});
	});*/

	// Zutaten in der Sidebar beim Klick entfernen
	/*$('#mix-graphic-display a, #mix-ingredients li a').live('click', function() {
		return wrapMixAction($(this).attr('href'), {});
	});*/
	
	// Tafel benennen
	/*
	$('#mix-label-form form').live('submit', function() {
		return wrapMixAction($(this).attr('action'), $(this).serialize());
	});
	*/
	$(".ingredients").delegate(".ing_add", "click", function() {
		// Zutat nur waehlbar, wenn sie noch nicht gewaehlt wurde
		return !$(this).parent().hasClass("selected");
	});

	$('#show-graphic').addClass('active');

	refreshSidebarInfos();
};

load = function( mix ) {
	$.each(mix, function(index, value) {
		$('#ingredient_' + value).addClass('selected');
	});
};

return {
	setUp: setUp,
	load: load
};

}());

return CHOCRI;
}(CHOCRI || {}, jQuery));

