$(document).ready(function(){

	/* ======== Variables ======== */
	
	var navigationFadeSpeed = 150;
	var currentPage = "";
	
	
	/* ======== Navigation ======== */
	
	$("div.navigation_link").hover(function() {
		$(this).fadeTo(navigationFadeSpeed,0.0);
	},function() {
		if(!$(this).hasClass("selected")) $(this).fadeTo(navigationFadeSpeed,0.3);
	});
	
	$("div.action_navigate").click(function() {
		
		// Grab elements
		var link = $(this);
		var container1 = $("div.container1");
		var container2 = $("div.container2");
		var contents = $("div.contents_"+link.attr("navigate-to-contents"));
		var navigationBar = $("div.navigation_bar");
		
		// Popup?
		if(link.attr("navigate-to-contents") == "virtualtour") {
			// What page?
			var page = "virtualtour.html"// default
			
			var popupAttr = $("div.contents_"+currentPage).find("div.page_container").attr("popup-page");
			if(popupAttr != null && popupAttr != "") {
				page = popupAttr;
			}
			
			// Open popup
			var popup = window.open(page,"goldkueste_virtualtours","menubar=no,width=855,height=706,toolbar=no,resizable=no,scrollbars=no,status=no");
			if (window.focus) popup.focus();
			return;
		}
		
		// Mark as selected and make sure to fade out the other links...
		$("div.action_navigate.selected").not(link).removeClass("selected").fadeTo(navigationFadeSpeed,0.3);
		link.addClass("selected");
		currentPage = link.attr("navigate-to-contents");
		
		// Calculate offset and travel speed - for a dx of 2372 we want 1200 ms transition
		var px = contents.position().left;
		var dx = Math.abs(-container2.position().left - px + container1.position().left);
		var fx = (dx/2372);
		fx = fx / (((fx-1)/2)+1); // Adjust for distance so that the swing effect does not get too slow...
		var s = fx * 1200;
		
		// Animage page contents
		container2.stop().animate({ left: -px+"px" }, s, function() { } );
		
		// Animate the navigation bar
		var nbpl = 2; // Padding left
		var nbpr = 4; // Padding right
		var nbx = link.position().left + nbpl;
		var nbw = link.width() - nbpl - nbpr;
		navigationBar.stop().animate({ left: nbx+"px", width: nbw+"px" }, s);
		
	});
	
	/* ======== Page Links ======== */
	
	// Hover
	$("div.page_footer_link").hover(function() {
		$(this).fadeTo(navigationFadeSpeed,1.0);
	},function() {
		if(!$(this).hasClass("selected")) $(this).fadeTo(navigationFadeSpeed,0.7);
	});
	
	// Click
	$("div.action_switch_page").click(function() {
		
		// Grab elements
		var link = $(this);
		var page = link.closest("div.page_container");
		var container1 = page.find("div.page_contents_container1");
		var container2 = page.find("div.page_contents_container2");
		var contents = page.find("div.page_contents_"+link.attr("page-id"));
		var navigationBar = page.find("div.page_footer_links_bar");
		
		// Mark as selected and make sure to fade out the other links...
		page.find("div.action_switch_page.selected").not(link).removeClass("selected").fadeTo(navigationFadeSpeed,0.7);
		link.addClass("selected");
		
		// Calculate offset and travel speed - for a dx of 2372 we want 1200 ms transition
		var px = contents.position().left;
		var dx = Math.abs(-container2.position().left - px + container1.position().left);
		var fx = (dx/2372);
		fx = fx / (((fx-1)/2)+1); // Adjust for distance so that the swing effect does not get too slow...
		var s = fx * 1200;
		
		// Animage page contents
		container2.stop().animate({ left: -px+"px" }, s, function() { } );
		
		// Animate the navigation bar
		var nbol = 6; // Offset left
		var nbx = link.position().left + nbol;
		var nbw = link.width();
		navigationBar.stop().animate({ left: nbx+"px", paddingRight: nbw+"px" }, s);
		//navigationBar.stop().animate({ left: nbx+"px" }, s);
		//navigationBar.stop().animate({ width: nbw+"px" }, s);
		
	});
	
	/* ======== Logo Link ======== */
	
	// Hover
	$("div.navigation_start").hover(function() {
		$(this).fadeTo(navigationFadeSpeed,0.7);
	},function() {
		$(this).fadeTo(navigationFadeSpeed,1.0);
	});
	
	// Click
	$("div.navigation_start").click(function() {
		
		// Grab elements
		var container1 = $("div.container1");
		var container2 = $("div.container2");
		var navigationBar = $("div.navigation_bar");
		
		// Make sure to fade out the other links...
		$("div.action_navigate.selected").removeClass("selected").fadeTo(navigationFadeSpeed,0.3);
		
		// Calculate offset and travel speed - for a dx of 2372 we want 1200 ms transition
		var px = 0;
		var dx = Math.abs(-container2.position().left - px + container1.position().left);
		var fx = (dx/2372);
		fx = fx / (((fx-1)/2)+1); // Adjust for distance so that the swing effect does not get too slow...
		var s = fx * 1200;
		
		// Animage page contents
		container2.stop().animate({ left: -px+"px" }, s, function() { } );
		
		// Animate the navigation bar
		var nbx = -40;
		var nbw = 40;
		navigationBar.stop().animate({ left: nbx+"px", width: nbw+"px" }, s);
		
	});
	
	/* ======== Virtual Tours Link ======== */
	
	/*// Hover
	$("div.virtualtour_link").hover(function() {
		$(this).fadeTo(navigationFadeSpeed,0.3);
	},function() {
		$(this).fadeTo(navigationFadeSpeed,0.0);
	});*/
	
	// Click
	$("div.virtualtour_link").click(function() {
		
		// Open popup
		var popup = window.open($(this).parent().find("div.page_container").attr("popup-page"),"goldkueste_virtualtours","menubar=no,width=855,height=706,toolbar=no,resizable=no,scrollbars=no,status=no");
		if (window.focus) popup.focus();
    	return false;
		
	});
	
	/* ======== Virtual Tours Buttons ======== */
	
	// Hover
	$("div.virtualtour_map_button").hover(function() {
		var button = $(this);
		if(button.attr("virtualtour") != currentVirtualTour) {
			$("div.virtualtour_label").stop().fadeTo(navigationFadeSpeed,0.0, function() {
				$("#virtualtour_label_"+button.attr("virtualtour")).stop().fadeTo(navigationFadeSpeed,1.0);
			});
		}
	},function() {
		var button = $(this);
		if(button.attr("virtualtour") != currentVirtualTour) {
			$("div.virtualtour_label").stop().fadeTo(navigationFadeSpeed,0.0, function() {
				$("#virtualtour_label_"+currentVirtualTour).stop().fadeTo(navigationFadeSpeed,1.0);
			});
		}
	});
	
	/* ======== Setup ======== */
	
	// Align page navbars to first link
	var pages = $("div.page_container");
	pages.each(function(i) {
		var page = $(this);
		var navigationBar = page.find("div.page_footer_links_bar");
		var link = page.find("div.action_switch_page:last");
		var nbol = 6; // Offset left
		var nbx = link.position().left + nbol;
		var nbw = link.width();
		link.addClass("selected");
		link.fadeTo(0,1.0);
		navigationBar.stop().animate({ left: nbx+"px", paddingRight: nbw+"px" }, 0);
	});
	
	// Make content visible
	$("div.container1").css({ visibility: "visible" });
	
	// Initial newsletter request
	newsletterSubmit();
	
});

/* ======== Newsletter Submit (so that binding is not required) ======== */

function newsletterSubmit() {
	// Show progress
	var button = $("#newsletter_submit")[0];
	if(button) {
		button.value = "Anmeldung...";
		button.enabled = false;
	}
	
	// Send request and replace contents...
	$.post("newsletter.ajax", $("#newsletter_form").serialize(), function(data) { $("#newsletter_form").html(data); });
}

