$(document).ready(function() {
	
	/* ---------------------------------------------------------------- */
	/* Retailer Standortliste am linken Rand des Inhalts                */
	/* ---------------------------------------------------------------- */
	var active_location_link_class = 'active_retailer_location_link';
	var cookie_name = 'retailer_location';
	var hidden_class = 'hidden';
	
	
	//
	function setActiveLocation(locationId) {
		// Adresse anzeigen, alle anderen werden ausgeblendet
		$('#retailer_location_' + locationId).removeClass(hidden_class);
		$('div.retailer_locations div[id^=retailer_location_]:not(#retailer_location_' + locationId + ')').addClass(hidden_class);

		// Pfeil setzen
		$('ul.retailer_location_picker li a').removeClass(active_location_link_class);
		$('#retailer_location_link_' + locationId).addClass(active_location_link_class);
	}
	
	
	// Beim Klick auf einen Standort, wird die alte Auswahl deselektiert,
	// die Neue selektiert und die ID in einen Cookie gepspeichert
	$('ul.retailer_location_picker li a').click(function() {
		var locationId = $(this).attr("id").split("_");
		locationId = locationId[locationId.length - 1];
		
		setActiveLocation(locationId);
		
		// Neue Retailerauswahl in den Cookie schreiben
		$.cookie(cookie_name, locationId, { path: '/', expires: 7 });
	});
	
	
	// Den Standort markieren, der sich unter der Maus befindet
	$('ul.retailer_location_picker li a').mouseenter(function() {
		var locationId = $(this).attr("id").split("_");
		locationId = locationId[locationId.length - 1];
		
		setActiveLocation(locationId);
	});
	
	
	// Den Standort markieren, der vom Benutzer ausgewaehlt wurde
	$('ul.retailer_location_picker li a').mouseleave(function() {
		var locationId = $.cookie(cookie_name);
		
		if(locationId != null) {
			setActiveLocation(locationId);
		} else {
			$('div.retailer_locations div[id^=retailer_location_]').addClass(hidden_class);
			$('ul.retailer_location_picker li a').removeClass(active_location_link_class);
			
			$('ul.retailer_location_picker li:first a').addClass(active_location_link_class);
			$('div.retailer_locations div:first').removeClass(hidden_class);
		}
	});
	
	
	// Beim Laden der Seite muss der Retailer gesetzt werden, der im Cookie gespeichert ist
	// Sollte noch keiner gesetzt sein, wird der erste Eintrag in der Liste selektiert
	var locationId = $.cookie(cookie_name);
	if(locationId != null) {
		$('#retailer_location_link_' + locationId).addClass(active_location_link_class);
		$('#retailer_location_' + locationId).removeClass(hidden_class);
	} else {
		$('ul.retailer_location_picker li:first a').addClass(active_location_link_class);
		$('div.retailer_locations div:first').removeClass(hidden_class);
	}



	/* ---------------------------------------------------------------- */
	/*  Navigation */
	/* ---------------------------------------------------------------- */
	$('#navigation .menu').each(function() {

		// Navigationselement der zum Submenu gehoert
		var menuTrigger = $(this).children(".item");

		// Das Menu zu diesem Navigationspunkt heraussuchen
		// Es existiert nicht immer eins!
		var submenu = $(this).find('.menu_container ul');
		var submenuHeight = submenu.height();
		var submenuWidth = submenu.width();

		// Der versteckte Container fuer das Menu
		var submenuContainer = $(this).children('.menu_container');

		// Submenu soweit nach oben verschieben, dass es unten 
		// direkt mit dem Navigationspunkt abschliesst		
		submenu.css("margin-top", -submenuHeight);

		// Das Submenu ausfahren
		$(this).mouseenter(function() {
			submenu.stop();
			
			submenuContainer.css({height: submenuHeight});
			submenu.animate({"margin-top": 0}, 300);
			
			menuTrigger.addClass("arrow_menu_open").removeClass("arrow_menu_closed");
			
			// Aktiver Zustand des Menutriggers
			menuTrigger.addClass("item_menu_open");
		});

		// Das Submenu wieder einfahren
		$(this).mouseleave(function() {
			submenu.stop();
			
			submenu.animate({"margin-top": -submenuHeight}, 300, function() {
				submenuContainer.css({height: 0});
			});
			
			menuTrigger.removeClass("arrow_menu_open").addClass("arrow_menu_closed");
			
			// Aktiver Zustand des Menutriggers wieder entfernen
			menuTrigger.removeClass("item_menu_open");
		});

	});
	
});
