var historyManager = {
	
	analyticTrackCode:null,
	pageTracker:null,
	firstPage:"start.php",
	loaderID:"content-loader",
	request:null,
	
	init:function () {
		try {this.pageTracker = _gat._getTracker(analyticTrackCode);} catch(err) {}
		//$.ajaxSetup({error:this.onError});
		SWFAddress.onChange = this.onChange;
	},
	
	onChange:function () {
		historyManager.resetRequest();
		try {onContentClose()}catch(e){}
		var newPath = SWFAddress.getPathNames();
		if (newPath == "") newPath = historyManager.firstPage;
		var parameters = '';
		if (SWFAddress.getParameterNames()) {
			for (var i = 0; i < SWFAddress.getParameterNames().length; i++) {
				parameters += '&' + SWFAddress.getParameterNames()[i] + '=' +SWFAddress.getParameter(SWFAddress.getParameterNames()[i]);
			}
		}
		$('#'+historyManager.loaderID).html ('<div id="start-bottom-container"><img src="images/page-glow-top.png"/><div id="start-bottom-center"><center><img style="margin-top:150px;margin-bottom:150px;" src="images/loader.gif" /></center></div><img src="images/page-glow-bottom.png"/></div>');
		historyManager.request = $.get (newPath,parameters,function (data) {
																$('#'+historyManager.loaderID).html (data);
																try {onContentDisplay()}catch(e){}
																historyManager.request = null;
															});
	},
		
	openPage:function (newPage) {
		this.resetRequest();
		window.location.hash = newPage;
	},
	
	resetRequest:function () {
		if (this.request) {
			this.request.abort();
			request = null;
		}
	},
	
	onError:function (x,e) {
		if(x.status==0){
			$('#'+historyManager.loaderID).html ("Es konnte keine Verbindung hergestllt werden.");
		}else if(x.status==404){
			$('#'+historyManager.loaderID).html ("Die angeforderte Seite konnte nicht gefunden werden.");
		}else if(x.status==500){
			$('#'+historyManager.loaderID).html ("Interne Server Fehler. Bitte versuchen Sie es erneut.");
		}else if(e=='parsererror'){
			alert('Error.\nParsing JSON Request failed.');
		}else if(e=='timeout'){
			$('#'+historyManager.loaderID).html ("Zeitüberschreitung für Ihre Anfrage.");
		}else {
			alert('Unknow Error.\n'+x.responseText);
		}
	}
}

$(document).ready (function () {	
		historyManager.init();
		
		SWFAddress.addEventListener(SWFAddressEvent.INIT, menuManager.init);
		SWFAddress.addEventListener(SWFAddressEvent.CHANGE, menuManager.onChange);
	});

