if(window.location.hash != '') {
	var Pfad = document.location.hash.replace('#', '');
	
	if(!checkBrowserName('MSIE') && Pfad == '') {
		document.location.href = URL;
	}
	
	if(Pfad != 'disqus_thread' && Pfad != '') document.location.href = URL+Pfad+'.html';
}

if(window.location.search != '') {
	var Ziel = document.location.href.replace(window.location.search, '');
	
	document.location.href = Ziel;
}

var Status = '';
var Folie = '';
var PushState = 0;
var PopState = ($.browser.safari && navigator.userAgent.toLowerCase().indexOf('chrome')) > -1 ? 0 : 1;

var Spalten = 5;

var Boxbreite = 140;
var Boxhoehe = 100;
var Boxabstand = 10;

var Miniaturbreite = 16;
var Miniaturhoehe = 11;
var Miniaturabstand = 5;

var Leinwandbreite = 840;
var Leinwandhoehe = 600;

var Positionen = new Array();
var Groessen = new Array();
var Seiten = new Array();

var Seitentitel = new Array();
Seitentitel['blog']='Blog';
Seitentitel['botschaft']='Botschaft';
Seitentitel['keep-it-simple']='Keep it simple';
Seitentitel['tell-a-story']='Tell a story';
Seitentitel['show-dont-tell']='Show dont tell';
Seitentitel['attract-attention']='Attract attention';
Seitentitel['provide-direction']='Provide direction';
Seitentitel['leistungen']='Leistungen';
Seitentitel['geistesblitz']='Geistesblitz';
Seitentitel['specials']='Specials';
Seitentitel['vita']='Vita';
Seitentitel['kontakt']='Kontakt';

$(document).ready(function() {
	$('a[rel=external]').attr('target', '_blank');
	
	$('#nojs').remove();
	
	$('#Links img').fadeTo('fast', '0.7').hover(function(){$(this).fadeTo('fast', '1');}, function() {$(this).fadeTo('fast', '0.7');});
	
	initialisieren();
});

function initialisieren() {
	$('<div id="Hintergrund"></div>').appendTo('body').click(function() {
		if(Status=='Leinwand') $('div.Box.Aktiv').box_ausblenden();
		
		if(typeof(window.history.pushState)!='function') document.location.href = URL;
	
		if(Status=='Blog') blog_ausblenden();
		if(Status=='Kontakt') kontakt_ausblenden();
	
		adresse_aktualisieren('');
	
		$('#Logo').css('cursor','auto');
	});
	
	$('#Logo').click(function(){
		if(Status=='Blog') blog_ausblenden();
		if(Status=='Kontakt') kontakt_ausblenden();
		if(Status=='Leinwand') $('div.Box.Aktiv').box_ausblenden();
	
		adresse_aktualisieren('');
	
		$(this).css('cursor','auto');
	});
	
	$('<div id="Miniaturen"></div>').appendTo('#Container');
	$('<div class="Pfeile Links"><img src="'+URL+'medien/grafiken/pfeil-links.gif" alt="" /></div>').appendTo('#Container');
	$('<div class="Pfeile Rechts"><img src="'+URL+'medien/grafiken/pfeil-rechts.gif" alt="" /></div>').appendTo('#Container');
	
	$('#Navigation a').each(function() {
		var Box = $(this).attr('rel').substr(3);
		
		$(this).click(function() {
			if(Box==18) kontakt_einblenden();
			else box_direktlink(Box);
	
			return false;
		});
	});

	boxen_aufbauen();
	miniaturen_aufbauen();
	
	adresse_abgleichen();
}

function adresse_abgleichen() {
	var Ziel = document.location.href.replace(URL, "").replace('.html', "");
	var Pfad = Ziel.split('/');

	var Seitenname = Pfad.length>1 ? Pfad[0] : Ziel;
	
	if(Seitenname=='files') { // Weiterleitung für alte Blog-Links
		if(Pfad[1].substr(0,4)=='tag-' || Pfad[1].substr(0,9)=='category-') document.location.href = URL+'blog/tags/'+Pfad[1].replace('tag-','').replace('category-','')+'.html';
		else document.location.href=URL+'blog/'+Pfad[1]+'.html'; 
	}
	
	switch(Seitenname) {
		case 'blog':
			blog_initialisieren();
			
/*			PushState = 1;
		
			if(Status=='Blog') blog_inhalt_laden(Ziel);
			else blog_einblenden(); */
			break;
		case 'kontakt':
			kontakt_einblenden();
			break;
		case '':
			if(Status=='Blog') blog_ausblenden();
			if(Status=='Kontakt') kontakt_ausblenden();
			if(Status=='Leinwand') $('div.Box.Aktiv').box_ausblenden();
	
			$(this).css('cursor','auto');
		
			header_aktualisieren(Seitenname);
			
			break;
		default:	
			if(typeof(Seiten[Seitenname])!='undefined') {
				PushState = 1;
		
				box_direktlink(Seiten[Seitenname]);
				header_aktualisieren(Seitenname);
			}
			break;
	}
}

function hash_abgleichen() {
	if(document.location.hash!='') $.scrollTo(document.location.hash, 400);
}

function adresse_aktualisieren(Seitenname) {
	var Adressteile = Seitenname.split('#');
	
	if(Seitenname=='') var Ziel = '';
	else var Ziel = Adressteile.length>1 ? Adressteile[0]+'.html#'+Adressteile[1] : Seitenname+'.html';
	
	if(typeof(window.history.pushState)=='function') window.history.pushState({}, Seitenname, URL+Ziel);
	else window.location.hash = Seitenname;
		
	if(!checkBrowserName('MSIE')) {
		header_aktualisieren(Seitenname);
	}
}

function header_aktualisieren(Seitenname) {
	var Titel = 'Dr. Michael Gerharz - ';
	if(typeof(Seitentitel[Seitenname])!='undefined') Titel += Seitentitel[Seitenname] + ' - ';
	Titel += 'Die Kunst, überzeugend zu präsentieren';
	
	$('title').html(Titel);
}

function boxen_aufbauen() {
	$('#Boxen').find('div.Box').each(function() {
		var ID = $(this).attr('id').replace("Box", "");
		var Titel = $(this).attr('title');
		
		Seiten[Titel] = ID;
	
		Positionen[$(this).attr('id')+'_Links'] = (ID-(Math.floor(ID/Spalten)*Spalten)) * (Boxbreite + Boxabstand) + Boxabstand + 40;
		Positionen[$(this).attr('id')+'_Oben'] = (Math.floor(ID/Spalten)) * (Boxhoehe + Boxabstand) + Boxabstand + 25;
		Groessen[$(this).attr('id')+'_Breite'] = $(this).hasClass('Gross') ? (Boxbreite * 2) + Boxabstand : Boxbreite;
		Groessen[$(this).attr('id')+'_Hoehe'] = $(this).hasClass('Gross') ? (Boxhoehe * 2) + Boxabstand : Boxhoehe;
		
		$(this).animate({
    		left: Positionen[$(this).attr('id')+'_Links'],
    		top: Positionen[$(this).attr('id')+'_Oben'],
    		width: Groessen[$(this).attr('id')+'_Breite'],
    		height: Groessen[$(this).attr('id')+'_Hoehe']
		});
		
		$(this).click(function() {
			$(this).box_einblenden();
		});
	});
}

function miniaturen_aufbauen() {
	$('#Boxen').find('div.Box').each(function() {
		var ID = $(this).attr('id').replace("Box", "");
	
    	var Links = (ID-(Math.floor(ID/Spalten)*Spalten)) * (Miniaturbreite + Miniaturabstand) + Miniaturabstand;
		var Oben = (Math.floor(ID/Spalten)) * (Miniaturhoehe + Miniaturabstand) + Miniaturabstand;
		var Breite = $(this).hasClass('Gross') ? (Miniaturbreite * 2) + Miniaturabstand : Miniaturbreite;
		var Hoehe = $(this).hasClass('Gross') ? (Miniaturhoehe * 2) + Miniaturabstand : Miniaturhoehe;
    	
    	$('#Miniaturen').append('<div class="Miniatur" id="Miniatur'+ID+'"></div>');
    	$('#Miniatur'+ID).css({
    		left: Links,
    		top: Oben,
    		width: Breite,
    		height: Hoehe
    	}).click(function() {
			$('#Box'+ID).box_einblenden();
    		return false;
    	});
    });
}

function box_direktlink(Box) {
	$('#Box'+Box).box_einblenden();
}

function blaettern(Richtung) {
	$('.Box.Aktiv').unternavigation_update(Richtung);
}

$.fn.box_einblenden = function() {
	var ID = $(this).attr('id').replace("Box", "");
	var Titel = $(this).attr('title');
	var Box = $(this);
	
	if(Status=='Blog') {
		blog_ausblenden(ID);
		return false;
	}
	
	if(Status=='Kontakt') {
		kontakt_ausblenden(ID);
		return false;
	}
	
	if(Status=='Leinwand') {
		$('.Box.Aktiv').box_ausblenden(ID);
		return false;
	}
	
	if(ID>0) {
		$(this).unbind('click');
		$(this).addClass('Aktiv');
		$(this).css('zIndex', '2');

		$(this).animate({
			left: 0,
			top: 0,
			width: Leinwandbreite,
			height: Leinwandhoehe
		}, function() {
			if($(this).find('.Inhalt').length>0) $(this).inhalt_einblenden();
			else $(this).inhalt_laden();
	
			if(PushState==0) adresse_aktualisieren(Titel);
			if(PushState==1) PushState=0;
		});
	
		Status = 'Leinwand';
		Folie = ID;
	} else {
		if(checkBrowserName('MSIE')) document.location.href = URL+'blog.html';
		else blog_einblenden();
		return;
	}
	
	$('#Logo').css('cursor','pointer');
	
	$('#Hintergrund').show();
	$('#Miniatur'+ID).addClass('Aktiv');
	
	$(this).pfeile_aufbauen();
}

$.fn.box_ausblenden = function(Nachfolge) {
	var ID = $(this).attr('id').replace("Box", "");
		
	Folie = '';
	
	$(this).click(function() {
		$(this).box_einblenden();
	}).removeClass('Aktiv');
	
	$('#Hintergrund').hide();
	$('#Miniaturen div.Miniatur').removeClass('Aktiv');
	
	$(this).find('.Inhalt').hide();
	$(this).find('.Vorschau').show();
	
	if(typeof(Nachfolge)=='undefined' || Nachfolge == 'Blog' || Nachfolge == 'Kontakt') $('.Pfeile').fadeOut();
	
	$(this).find('.Unterseiten, .Steuerung').remove();
	$(this).find('.Unterseite').removeClass('Aktiv').css('left', '0');
	
	$(this).animate({
		left: Positionen['Box'+ID+'_Links'],
		top: Positionen['Box'+ID+'_Oben'],
		width: Groessen['Box'+ID+'_Breite'],
		height: Groessen['Box'+ID+'_Hoehe']
	}, function() {
		$(this).css('zIndex', '1');
		
		Status = '';
		
		if(typeof(Nachfolge)!='undefined') {
			if(Nachfolge == 'Blog') blog_einblenden();
			else if(Nachfolge == 'Kontakt') kontakt_einblenden();
			else $('#Box'+Nachfolge).box_einblenden();
		}
	});
}

$.fn.inhalt_laden = function() {
	var ID = $(this).attr('id').replace("Box", "");
	var Box = $(this);
	
	$('#Ladebalken').show();
	
	$(this).append('<div class="Inhalt"></div>');
	
	$.getJSON(URL+'?seite=box'+ID+'&ausgabe=ajax', function(data) {
		$(Box).find('.Inhalt').html(data.Inhalt);
		
		if($(Box).find('.Unterseite:eq(0)').find('img').length > 0) {
			$(Box).find('.Unterseite:eq(0)').find('img').load(function() {
				$(Box).inhalt_einblenden();
			});
		} else $(Box).inhalt_einblenden();
	});
}

$.fn.inhalt_einblenden = function() {
	var ID = $(this).attr('id').replace("Box", "");

	$('#Ladebalken').hide();

	if(Folie == ID) {
		$(this).find('.Inhalt').show();
		$(this).find('.Vorschau').fadeOut();
	
		if($(this).find('.Unterseite').length>0) $(this).unternavigation_aufbauen();
	}
}

$.fn.unternavigation_aufbauen = function() {
	$(this).find('.Inhalt').append('<div class="Unterseiten"></div>');
	$(this).find('.Inhalt').append('<a href="#" class="Steuerung Links"><img src="'+URL+'medien/grafiken/pfeil-mini-links.gif" alt="" /></a>');
	$(this).find('.Inhalt').append('<a href="#" class="Steuerung Rechts"><img src="'+URL+'medien/grafiken/pfeil-mini-rechts.gif" alt="" /></a>');

	$(this).find('.Steuerung.Links').click(function() {
		$(this).parent().unternavigation_update('-1');
		return false;
	}).hover(function() {
		$(this).animate({left: '+=5'}, 'fast');
	}, function() {
		$(this).animate({left: '-=5'}, 'fast');
	});
		
	$(this).find('.Steuerung.Rechts').click(function() {
		$(this).parent().unternavigation_update('+1');
		return false;
	}).hover(function() {
		$(this).animate({right: '+=5'}, 'fast');
	}, function() {
		$(this).animate({right: '-=5'}, 'fast');
	});
		
	$(this).find('.Unterseiten').hover(function() {
		$(this).animate({top: '+=5'}, 'fast');
	}, function() {
		$(this).animate({top: '-=5'}, 'fast');
	});
		
	$(this).find('.Unterseite').each(function(index) {
		$(this).parent().find('.Unterseiten').append('<a href="#">'+(index+1)+'</a>').find('a').eq(index).click(function() {
			$(this).parents('.Inhalt').unternavigation_update(index);
			return false;
		});
			
		$(this).show().css('left', (index*840));
	});
	
	$(this).unternavigation_update();
}

$.fn.unternavigation_update = function(Richtung) {
	var Anzahl = $(this).find('.Unterseite').length-1;

	var Start = $(this).find('.Unterseite.Aktiv').index();	
	if(Start==-1) Start = 0;
	
	if(typeof(Richtung)=='undefined') var Richtung = 0;
	
	if(typeof(Richtung)=='string') {
		Richtung = parseFloat(Richtung);
		var Ziel = Start + Richtung;
	} else Ziel = Richtung;
	
	var Differenz = Ziel-Start;
	
	$(this).find('.Unterseite').removeClass('Aktiv').eq(Ziel).addClass('Aktiv');
	$(this).find('.Unterseiten a').removeClass('Aktiv').eq(Ziel).addClass('Aktiv');
	
	$(this).parent().find('.Unterseite').animate({left: '-='+(Differenz*840)});
	
	if(Ziel==0) $(this).find('.Steuerung.Links').animate({left: '-26'});
	if(Ziel>0 && $(this).find('.Steuerung.Links').css('left')<'-5px') $(this).find('.Steuerung.Links').animate({left: '-5'});
	if(Ziel<Anzahl && $(this).find('.Steuerung.Rechts').css('right')<'-5px') $(this).find('.Steuerung.Rechts').animate({right: '-5'});
	if(Ziel==Anzahl) $(this).find('.Steuerung.Rechts').animate({right: '-26'});
}

$.fn.pfeile_aufbauen = function() {
	var ID = $(this).attr('id').replace("Box", "");
	
	var Index = $('#Box'+ID).index();
	var Anzahl = $('#Boxen .Box').length-1;
		
	$('.Pfeile.Links').unbind('click').click(function() {
    	$('#Boxen .Box').eq(Index-1).box_einblenden();
	});
		
	$('.Pfeile.Rechts').unbind('click').click(function() {
    	$('#Boxen .Box').eq(Index+1).box_einblenden();
	});
		
	if(Index == 0) $('.Pfeile.Links:visible').fadeOut();
	if(Index > 0) $('.Pfeile.Links:hidden').fadeIn();
	if(Index < Anzahl) $('.Pfeile.Rechts:hidden').fadeIn();
	if(Index == Anzahl) $('.Pfeile.Rechts:visible').fadeOut();
}

function blog_einblenden() {
	$('.Pfeile').fadeOut();
	
	if(Status=='Leinwand') $('.Box.Aktiv').box_ausblenden('Blog');
	else if(Status=='Kontakt') kontakt_ausblenden('Blog');
	else {
		$('#Blog').fadeIn();
		$('#Miniatur0').addClass('Aktiv');
		
		var Aufruf = document.location.href.replace(URL, "");
		var Pfad = Aufruf.split('/');
		var Ziel = Pfad.length>1 && Pfad[0]=='blog' ? Aufruf : 'blog.html';
		
		blog_initialisieren();
		blog_inhalt_laden(Ziel);
	}
}

function blog_initialisieren() {
	Status = 'Blog';
	
	$('#Hintergrund').show();
	
	$('#Blog').find('dl.Archiv + p').click(function() {
		$(this).hide();
		$('#Blog dl.Archiv dd').fadeIn(400);
		return false;
	});
	
	if(!checkBrowserName('MSIE')) {
		$('#Blogsuche').unbind().submit(function() {
			var Suchbegriff = $(this).find('input[name=Suche]').val();

			blog_suche(Suchbegriff);

			return false;
		});
		
		$('#Blog a').each(function() {
			var href1 = $(this).attr('href');
			var href2 = href1.replace(URL, '');
		
			if(href1 != href2) {
				$(this).unbind().click(function() {
					blog_inhalt_laden(href1);
					return false;
				});
			}
		});
	}
}

function blog_suche(Suchbegriff) {
	$.post(URL+'blog/suche/vorab.html', {Suche: Suchbegriff}, function(Antwort) {
		blog_inhalt_laden(URL+'blog/suche.html');
	});
}

function blog_inhalt_laden(Vorlage) {
	var Ziel = Vorlage.replace('/files/tag-','/blog/tags/').replace('/files/','/blog/');
	var Seitenname = Ziel.replace(URL,'').replace('.html','')

	if(checkBrowserName('MSIE')) window.scrollTo(0,0);
	else $('html, body').animate({scrollTop:0}, 'slow');
	
	if(Seitenname.substr(0,4) != 'blog' && typeof(Seiten[Seitenname])!='undefined') {
		box_direktlink(Seiten[Seitenname]);
		return false;
	}

	$('#Ladebalken').show();
	$('#Blog').find('.LinkeSpalte').fadeTo(200, 0.1);
	
	var Pfad = format_url(Ziel);
	
	$.getJSON(Pfad+'&ausgabe=ajax', function(data) {
		if(PushState==0) adresse_aktualisieren(Seitenname);
		if(PushState==1) PushState=0;
		
		$('#Blog').find('.LinkeSpalte').html(data.Inhalt);
		
		if(!checkBrowserName('MSIE')) {
			$('#Blog').find('.LinkeSpalte a').each(function() {
				var href1 = $(this).attr('href');
				var href2 = href1.replace(URL, '');
			
				if(href1 != href2) {
					$(this).click(function() {
						blog_inhalt_laden(href1);
						return false;
					});
				}
			});
		}

		$('#Blog').find('.LinkeSpalte').fadeTo(400, 1);
		$('#Ladebalken').hide();
	});
}

function blog_ausblenden(Nachfolge) {
	$('#Hintergrund').hide();
	$('#Miniaturen div.Miniatur').removeClass('Aktiv');
	
	$('#Blog').fadeOut('400', function() {
		Status = '';
	
	$('#Blog').find('.LinkeSpalte').html('&nbsp;');
		if(typeof(Nachfolge)!='undefined') $('#Box'+Nachfolge).box_einblenden();
	});
}

function kontakt_einblenden() {
	$('.Pfeile').fadeOut();
	
	if(Status=='Leinwand') $('.Box.Aktiv').box_ausblenden('Kontakt');
	else if(Status=='Blog') blog_ausblenden('Kontakt');
	else if(Status!='Kontakt'){
		$('#Hintergrund').show();
		
		$('#Kontakt').fadeIn();
	
		Status = 'Kontakt';
		
		if(PushState==1) PushState=0;
		
		adresse_aktualisieren('kontakt');
	}
}

function kontakt_ausblenden(Nachfolge) {
	$('#Hintergrund').hide();
	$('#Miniaturen div.Miniatur').removeClass('Aktiv');
	
	$('#Kontakt').fadeOut('400', function() {
		if(typeof(Nachfolge)!='undefined') $('#Box'+Nachfolge).box_einblenden();
	});
	
	Status = '';
}

function format_url(Vorlage) {
	Vorlage = Vorlage.split('#');
	Vorlage = Vorlage[0].replace(URL, '').replace('.html','').split('/');
				
	if(Vorlage.length > 0) Pfad = '?seite='+Vorlage[0];
	if(Vorlage.length > 1) Pfad += '&ansicht='+Vorlage[1];
	if(Vorlage.length > 2) Pfad += '&id='+Vorlage[2];
	
	return URL+Pfad;
}

function checkBrowserName(name){  
	var agent = navigator.userAgent.toLowerCase();
	if (agent.indexOf(name.toLowerCase())>-1) return true;
	return false;  
 }

window.onpopstate = function() {
	if(PopState==1) adresse_abgleichen();
	else PopState++;
};
