$(document).ready(function(){
	// content
	var top = $("#top");
	var menu = $("#menu");
	var main = $("#main");
	var main_secondary = $("#main_secondary");
	var footer = $("#footer");
	
	var last_section = "start";

	// locale
	var locale;

	// misc
	var fadeIn_duration = 1400;

	String.prototype.startsWith = function(str) {
		return (this.match("^"+str) == str)
	}

	// get locale
	if ( navigator ) {
	    if ( navigator.language ) {
	        locale = navigator.language;
	    }
	    else if ( navigator.browserLanguage ) {
	        locale = navigator.browserLanguage;
	    }
	    else if ( navigator.systemLanguage ) {
	        locale = navigator.systemLanguage;
	    }
	    else if ( navigator.userLanguage ) {
	        locale = navigator.userLanguage;
	 	}
	}
	if(locale.startsWith("de")) {
		locale = "de";
	} else {
		locale = "en";
	}
	
	function handleLanguageMenuEvents() {
		var language = $("#language li");
		language.click(function(){
			locale = this.id;
			loadPage();
		});
	}

	function loadSection(section) {
		$("#" + last_section).removeClass("current");
		$("#" + section).addClass("current");

		main.fadeOut(600, function() {
			main.load("content/" + section + ".html #main_" + locale, handleMainEvents);
		});

		main_secondary.fadeOut(800, function() {
			main_secondary.load("content/" + section + ".html #main_secondary_" + locale, handleMainSecondaryEvents);
		});

		footer.fadeToggle(1000, function() {
			footer.load("content/footer.html #footer_" + locale, handleFooterEvents);
		});
	}

	//handle menu click events (callback)
	function handleMenuEvents() {
		var section = $("#menu li");
		$("#" + last_section).addClass("current");
		section.click(function(){
			loadSection(this.id);
			last_section = this.id;
		});
	}
	
	//handle main click events (callback)
	function handleMainEvents() {
		main.fadeIn(fadeIn_duration);
		var section = $("#main .click");
		$("#" + last_section).addClass("current");
		section.click(function(){
			loadSection(this.id);
			last_section = this.id;
		});
	}
	
	//handle main_secondary click events (callback)
	function handleMainSecondaryEvents() {
		main_secondary.fadeIn(fadeIn_duration);
		var section = $("#main_secondary .click");
		$("#" + last_section).addClass("current");
		section.click(function(){
			loadSection(this.id);
			last_section = this.id;
		});
	}
	
	//handle footer click events (callback)
	function handleFooterEvents() {
		footer.fadeIn(fadeIn_duration);
		var section = $("#footer .click");
		$("#" + last_section).addClass("current");
		section.click(function(){
			loadSection(this.id);
			last_section = this.id;
		});
	}
	
	function loadPage() {
		switch(locale) {
			case "de":
				top.load("content/top.html #top_de");
				menu.load("content/menu.html #menu_de", handleMenuEvents);
				loadSection(last_section);
				$("#en").removeClass("current");
				$("#de").addClass("current");
				break;
			default:
				top.load("content/top.html #top_en");
				menu.load("content/menu.html #menu_en", handleMenuEvents);
				loadSection(last_section);
				$("#de").removeClass("current");
				$("#en").addClass("current");
				break
		}
	}

	loadPage();
	handleLanguageMenuEvents();
});

