TG = {};


$(function(){
	// auf welcher Seite befinden wir uns?
	TG.this_page = TG.page_name();
	// von welcher Seite kam der Nutzer?
	TG.referrer_page = TG.page_name('referrer');
	// menu hereinfahren, wenn noetig
	TG.move_menu_in();
	// aktiven Menupunkt markieren
	TG.mark_a_current();
	// alle Links in div#navi manipulieren
  $('div.navi a').click(function(event){
    event.preventDefault();
    TG.leave_page($(this));
    return false;
  });
	// mittleren Content einfaden
	$('#mitte_wrapper').fadeIn(1200);
  
});



TG.leave_page = function(click_target){
	// href des links
	var target = $(click_target).attr('href');
	// mittleren Content ausfaden
	$('#mitte_wrapper').fadeOut(1000, function(){
    location.href = target+'&referrer='+TG.this_page;
	});
	// Menu einklappen, sofern noetig
	TG.move_menu_back(target);

	return false;
}




/**********************
*  Menu
**/
TG.page_name = function(type, url){
	var pattern;
	var page = '';
	if(typeof url == 'undefined'){
		var url = location.href;
	}

	if(type=='referrer'){
		// wir wollen den wert der referrer-variablen aus der url
		pattern = /referrer=([\w\-\_]+)/;
		page = url.match(pattern);
		if(page){
			page = page[1];
		}else{
			page = 'external_referrer';
		}
	}else{
		// wir wollen den wert der page-variablen aus der url
		pattern = /page=([\w\-\_]+)/;
		page = 	url.match(pattern);
		if(page){
			page = page[1];
		}else{
			pattern = /\/([\w\-\_]+)\.htm/;
			page = 	url.match(pattern);
			if(page){
				page = page[1];
			}else{
				page = 'start';
			}
		}
	}
	
	return page;
}

// os: hier Anpassungen vornehmen, wenn neuer Menupunkt hinzukommt! Gleicher Name wie in der index.htm hinzufügen
TG.internal_menu = function(page_name){
	var internal_menu_no;
	
	switch(page_name){
		case 'kompetenz':
		case 'profil':
		case 'strategie':
		case 'e-learning':
			internal_menu_no = 1;
			break;
		case 'loesungen':
		case 'simulation':
		case 'modulares_lernen':
		case 'wissenslandkarten':
		case 'story-based_learning':
		case 'game-based_learning':
			internal_menu_no = 2;
			break;
		case 'ansprechpartner':
			internal_menu_no = 3;
		default:
			internal_menu_no = 0;
	}
	return internal_menu_no;
}



TG.move_menu_back = function(link_target){
	// zurueckfahren nur, wenn wir das Menu wechseln
	var next_menu = TG.internal_menu(TG.page_name('', link_target));
	var this_menu = TG.internal_menu(TG.this_page);

	if(next_menu != this_menu){
		// Menu zurueck animieren
		$('#navipunkt1').animate({ 
            left: '444px',
            top: '115px'
    }, 500);
		$('#navipunkt2').animate({ 
            left: '518px',
            top: '115px'
    }, 500);
	}
}


// os: hier Anpassungen vornehmen, wenn neuer Menupunkt hinzukommt! Die werte in der if und else Schleife müssen immer gleich sein!
// y-Wert der Grundlinie liegt bei 115px. Pro zusätzlichem Navigationspunkt muss der entsprechende Y-Wert (this_menu= 2oder3) um 15px verringert werden. Die Anpassung der x-Werte muss individuell nach der Breite der Navigationspunkte erfolgen. 
// Menupunkt 4 (kontakt) ist nicht dynamisch und taucht daher hier nicht auf
TG.move_menu_in = function(){
	if(TG.referrer_page && TG.referrer_page != 'external_referrer'){
		var last_menu = TG.internal_menu(TG.referrer_page);
		var this_menu = TG.internal_menu(TG.this_page);

		if(last_menu == this_menu){
			// wir sind im gleichen Menu wie auf der letzten seite - also "stehen lassen" / CSS setzen
			if(this_menu == 1){
				$('#navipunkt1').css({ left:"440px", top:"65px", position:'absolute'});
				$('#navipunkt2').css({ left:"518px", top:"115px", position:'absolute'});
			}else if(this_menu == 2){
				$('#navipunkt1').css({ left:"367px", top:"115px", position:'absolute'});
				$('#navipunkt2').css({ left:"442px", top:"35px", position:'absolute'});
			}
		}else{
			// wir sind in einem anderen Menu als auf der letzten seite - also hochfahren
			if(this_menu == 1){
    		$('#navipunkt1').animate({ left:'440px', top:'65px'}, 500);
    		$('#navipunkt2').animate({ left:'518px', top:'115px'}, 500);
			}else if(this_menu == 2){
    		$('#navipunkt1').animate({ left:'367px', top:'115px'}, 500);
    		$('#navipunkt2').animate({ left:'442px', top:'35px'}, 500);
			}
		}
		
		
	}

}



TG.mark_a_current = function(){
	// allen Links die Klasse "current" entziehen
	$('a').each(function(index, a){
		if(TG.page_name('page',$(a).attr('href')) == TG.this_page){
			// den geklickten Link als "current" markieren
			$(a).addClass('current');
		}else{
			$(a).removeClass('current');
		}
	});

}

// Der Firefox fuehrt das onload-Event bei BackButton nicht aus
// daher muss das FF-eigene DOMContentLoaded-Event bemueht werden:
//if (document.addEventListener) {
//	document.addEventListener("DOMContentLoaded", init, false);
//}
