/**
* onReady werden die unteren (aktiven!) Navigations-Pfeile
* mit dem onClick-Event belegt. Danach wird die pressKey-
* Funktion aufgerufen, die die Eingabe weiter verarbeitet.
*/
var direction = 1;
$(document).ready(function() {


	$('div#footer div#navigator img.active').click(function() { pressKey($(this).attr('id').split('nav-').join('')); });

	if ($('div#board').length > 0) {
		var imagesCounter	= $('div#board div.board ul li').length;

		if (imagesCounter > 0) {
			var imageCounter	= parseInt($('div#board div.board ul li.active').attr('id').split('board-').join(''));

			if (imageCounter > 1)
			  activateNavigator('left');

			if (imageCounter < imagesCounter)
			  activateNavigator('right');
		}
	}
	// Single page view with fullscreen images
	else if ($("img.fullscreen").length > 0) {
	  var imageCounter = $("img.fullscreen").length;

	  if(activeImage < imageCounter)
	    activateNavigator('right');

	  if(activeImage > 1)
	    activateNavigator('left');

	  // Positioning the image in a row
	  //scaleAndPositioningFullscreenImages();

	  // Jump to the correct image gven via GET
	  if(activeImage > 1) {
	    var bgImages = $("img.fullscreen");
	    for(var i=0; i< bgImages.length; i++) {
			  $(bgImages[i]).css("left", (-1*visibleWidth*(activeImage-1)) + (i*visibleWidth) + 'px');
			}
		}
	}
	else if ($('div.accordions').length > 0) {
		var activeAccordion = false;
		var accordions = $('div.accordions div.accordion');

		//activateNavigator('right');
		//activateNavigator('left');
    updateProjectNavigatorInfo();

		for (var accordionCounter=0; accordionCounter<accordions.length; accordionCounter++) {
			if ($(accordions[accordionCounter]).hasClass('active'))
			  activeAccordion = accordionCounter;
		}


		if (activeAccordion !== false) {
			if (activeAccordion > 0) activateNavigator('up');
			if ((activeAccordion+1) < accordions.length) activateNavigator('down');
		}
	}
	else if ($('div#archive div#archives').length > 0) {
		$("#footer span.left").hide();
	  $("#footer span.right").hide()

		var activeArchive = false;
		var archives = $('div#archive div#archives div.archive');
		for (var archiveCounter=0; archiveCounter<archives.length; archiveCounter++) {
			if ($(archives[archiveCounter]).hasClass('active')) activeArchive = archiveCounter;
		}
		if (activeArchive !== false) {
			if (activeArchive > 0) activateNavigator('up');
			if ((activeArchive+1) < archives.length) activateNavigator('down');
		}
	}
	else if ($("img.fullscreenhome").length > 0) {
	


    updateProjectNavigatorInfo();

	  activeImage = 1;
	  var imageCounter = $("img.fullscreenhome").length;


	  if(activeImage < imageCounter)
	    activateNavigator('down');


	    $("#content .fullscreenhome").each(function(index){
						  $(this).css({ top: index*visibleHeight -((activeImage-1)*visibleHeight) + 'px' }
						  );
						});


					  var imageCounter = $("img.fullscreenhome").length;

					  if(activeImage < imageCounter)
						(activateNavigator('down'));

					  if(activeImage > 1)
						(activateNavigator('up'));

					  if(activeImage == imageCounter)
					    deactivateNavigator('down');

					  if(activeImage == 1)
						    deactivateNavigator('up');



	  $("#navigator span.left").hide();
  $("#navigator span.right").hide();
	}
	
	if ($("img.fullscreenhome").length > 1) {
	

	
	
	var timer = setInterval("autoslide()",8000);

	}

	
	
	if (projects.length > 1) {
	  // There are projects to reload via AJAX
	  if(activeProject < (projects.length-1))
	    activateNavigator('down');

	  if(activeProject > 0)
	    activateNavigator('up');
	}
});
function autoslide(){

if (direction==0 && ($('#nav-up').parent().hasClass('active'))){ direction=0;pressKey('up');exit;}
if (direction==1 && ($('#nav-down').parent().hasClass('active'))){direction=1; pressKey('down');exit;}	
if (direction==1 && !($('#nav-down').parent().hasClass('active'))){ direction=0;pressKey('up');exit;}
if (direction==0 && !($('#nav-up').parent().hasClass('active'))){direction=1; pressKey('down');exit;}	
}
/**
* Auf Keydown wird abgefragt, welche der Pfeiltasten gedrueckt
* wurde und wenn, ob der Button ueberhaupt aktiv ist - wenn ja,
* dann wird die pressKey-Funktion aufgerufen.
*/
$(document).keydown(function(e) {

	switch (e.keyCode) {
		case 37: if ($('#nav-left').parent().hasClass('active'))	{ pressKey('left'); }	break;
		case 38: if ($('#nav-up').parent().hasClass('active'))		{ e.preventDefault(); pressKey('up');		}	break;
		case 39: if ($('#nav-right').parent().hasClass('active'))	{ pressKey('right');}	break;
		case 40: if ($('#nav-down').parent().hasClass('active'))	{ e.preventDefault(); pressKey('down'); }	break;

		// Space or enter (only for archive view to open project)
		case 13:
		case 32: pressKey('enter');	break;
	}
});


/**
* Verarbeitet die Tastatureingaben oder Mausclicks auf die
* untere Pfeil-Navigation.
*/



function pressKey(keyPress) {

	$('div#navigator img#nav-'+keyPress).animate({ top: '1px' }, 100).animate({ top: 0 }, 100);

	if ($('div#board').length > 0) {
		var boardLength		= $('div#board div.board ul li').length;
		var imageCounter	= $('div#board div.board ul li.active').attr('id').split('board-').join('');

		switch (keyPress) {
			case 'left':	if (imageCounter == 1) imageCounter = boardLength;
										else imageCounter--;
										if (imageCounter > 1) activateNavigator('left'); else deactivateNavigator('left');
										activateNavigator('right');
										break;
			case 'up':		imageCounter = 0; break;
			case 'right':	if (imageCounter == boardLength) imageCounter = 1;
										else imageCounter++;

										if (imageCounter < boardLength) activateNavigator('right'); else deactivateNavigator('right');
										activateNavigator('left');

										break;
			case 'down':	imageCounter = 0; break;
		}

		if (imageCounter > 0) { positioningBoard(imageCounter); }
	}
	else if ($("img.fullscreen").length > 0) {
		// Single page view sliding background images
		var imagesCount = $("img.fullscreen").length;

		var bgImages = $("img.fullscreen");

		switch(keyPress) {
		  case 'right' : activeImage++;
		  							 if(activeImage == (imagesCount))
		  							   deactivateNavigator('right');

		  							 if(activeImage > 0)
		  							   activateNavigator('left');

									   for(var i=0; i< bgImages.length; i++) {

										   $(bgImages[i]).animate( {left: (-1*visibleWidth*(activeImage-1)) + (i*visibleWidth) + 'px' }, 400);
										 }
		  							 break;

		  case 'left' : activeImage--;
		  							 if(activeImage == 1) {
		  							   deactivateNavigator('left');
		  							   activateNavigator('right');
		  							 }

		  							 if(activeImage > 0)
		  							   activateNavigator('right');

									   for(var i=0; i< bgImages.length; i++) {
										   $(bgImages[i]).animate( {left: (-1*visibleWidth*(activeImage-1)) + (i*visibleWidth) + 'px' }, 400);
										 }
		  							 break;
		}
		positioningBoardVerticalCentered();
	}
	else if ($('div.accordions').length > 0) {

var url = window.location.href.split("aktuelles/");
	switch (keyPress) {
	case 'left':  document.location.href=url[0]+'aktuelles/'+(parseInt(pager)+1);break;
	case 'right':	document.location.href=url[0]+'aktuelles/'+(parseInt(pager)-1);break;
	}

		var activeAccordion = false;
		var accordions = $('div.accordions div.accordion');
		for (var accordionCounter=0; accordionCounter<accordions.length; accordionCounter++) {
			if ($(accordions[accordionCounter]).hasClass('active')) activeAccordion = accordionCounter;
		}


	if (activeAccordion !== false) {

			switch (keyPress) {
				case 'up':		if (activeAccordion > 0) {
								  $($(accordions[(activeAccordion-1)])).find("h1").click();
								  activateNavigator('up');

								}

								if (activeAccordion == 1)
								  deactivateNavigator('up');
								activateNavigator('down');

								break;

				case 'down':	if ((activeAccordion+1) <= accordions.length) {
								  $($(accordions[(activeAccordion+1)])).find("h1").click();
								}
								if ((activeAccordion+1) == (accordions.length-1))
								  deactivateNavigator('down');
								activateNavigator('up');

					break;

			}


		}
	}
	else if ($('div#archive div#archives').length > 0) {
		var activeArchive = false;
		var archives = $('div#archive div#archives div.archive');
		for (var archiveCounter=0; archiveCounter<archives.length; archiveCounter++) {
			if ($(archives[archiveCounter]).hasClass('active'))
			  activeArchive = archiveCounter;
		}

		switch (keyPress) {
		  case 'up':		// Already on first archive, no scrolling up anymore
										if(activeArchive == 0)
		  								return false;


		  							if (activeArchive !== false)
											$('div#archive div#archives div.archive').removeClass('active');

										if (activeArchive > 0) {
											$(archives[(activeArchive-1)]).addClass('active');
											activateNavigator('up');
										}

										if (activeArchive == 1)
										  deactivateNavigator('up');
										activateNavigator('down');


										// Scroll window animated smoothly up
										if($("body").outerHeight() > visibleHeight) {
										  if($(window).scrollTop() >= 100)
										    $.scrollTo($(window).scrollTop() - 100, 300, {axis: 'y'} );
										}
										break;

			case 'down':	// Scroll down if not on last archive
										if(activeArchive >= (archiveCounter-1))
										  return false;

										if (activeArchive !== false)
										  $('div#archive div#archives div.archive').removeClass('active');

										if ((activeArchive+1) <= archives.length) {
											$(archives[(activeArchive+1)]).addClass('active');
											activateNavigator('down');
										}

										if ((activeArchive+1) == (archives.length-1))
										  deactivateNavigator('down');
										activateNavigator('up');


	                   // Scroll window animated smoothly down
										if($("body").outerHeight() > visibleHeight) {
										  $.scrollTo($(window).scrollTop() + 100, 300, {axis: 'y'} );
										}
										break;

		  case 'enter': if ($("#archive-search-input:focus").length == 0)
		  								$('div#archive div#archives div.archive.active div.description').click();
		  						  break;
		}
		//archivePositioning();
	}
	else if ($("img.fullscreenhome").length > 0) {
	  switch (keyPress) {
		case 'down':
						activeImage++;
						$("#content .fullscreenhome").each(function(index){
						  $(this).animate({ top: index*visibleHeight -((activeImage-1)*visibleHeight) + 'px' }
						  );
						});


					  var imageCounter = $("img.fullscreenhome").length;

					  if(activeImage < imageCounter)
						(activateNavigator('down'));

					  if(activeImage > 1)
						(activateNavigator('up'));

					  if(activeImage == imageCounter)
					    deactivateNavigator('down');

					  if(activeImage == 1)
						    deactivateNavigator('up');


					  break;

		case 'up':

		        activeImage--;
						$("#content .fullscreenhome").each(function(index){
						  $(this).animate({ top: index*visibleHeight -((activeImage-1)*visibleHeight) + 'px' });
						});
					  var imageCounter = $("img.fullscreenhome").length;

					  if(activeImage < imageCounter)
						(activateNavigator('down'));

					  if(activeImage > 1)
							(activateNavigator('up'));
					  if(activeImage == imageCounter)
						    deactivateNavigator('down');

						  if(activeImage == 1)
							    deactivateNavigator('up');

					  break;

	  }
	}


	// Activate sliding through projects with arrow navigation
	if(projects.length > 1) {
		switch (keyPress) {
			case 'down': activeProject += 1;
activeImage = 1;
			document.location.href=  (projects[activeProject]['href']);
      return;


									 // Load LOGO footer of next project

									 $("#logo a").load(projects[activeProject]['href'] + " #logo a ", function(response,status,xhr) { });
								  $("#footer-content").load(projects[activeProject]['href'] + " #footer-content", function(){							   								 // Load Project footer of next project
									 _typeface_js.renderDocument();
								 	 updateProjectNavigatorInfo();
                    });


									 // Fetch board content of next projext
								   $("#content").load(projects[activeProject]['href'] + " #content", function(response,status,xhr){

									 _typeface_js.renderDocument();
								 	 updateProjectNavigatorInfo();


								 	 // Deactivate left and right arrow
								   deactivateNavigator('left');
								   deactivateNavigator('right');
								   deactivateNavigator('up');
								   deactivateNavigator('down');

								   // Activate left/right arrow if needed
								 	 if ($('div#board').length > 0) {
											var imagesCounter	= $('div#board div.board ul li').length;

											if (imagesCounter > 0) {
												var imageCounter	= parseInt($('div#board div.board ul li.active').attr('id').split('board-').join(''));

												if (imageCounter > 1)
												  activateNavigator('left');

												if (imageCounter < imagesCounter)
												  activateNavigator('right');
											}
								   }
								   else if ($("img.fullscreen").length > 0) {
								   	 scaleAndPositioningFullscreenImages();

									   var imageCounter = $("img.fullscreen").length;

										 if(activeImage < imageCounter)
										   activateNavigator('right');

										 if(activeImage > 1)
										   activateNavigator('left');
									 }


								   if(activeProject < (projects.length-1))
	    							 activateNavigator('down');

								   if(activeProject > 0)
								     activateNavigator('up');

								   // Set board on first image
								 	 activeImage = 1;
								   positioningBoard(activeImage);
							if ($("#bg-image").length > 0)   scaleBoardBgImages();
								   });


								 break;


		  case 'up': activeProject -= 1;
		             activeImage = 1;

		             document.location.href=  (projects[activeProject]['href']);
                return;

								 // Fetch board content of next projext

								 // Load LOGO footer of next project
								 	$("#logo a").load(projects[activeProject]['href'] + " #logo a", function(response,status,xhr) { });
								  $("#footer-content").load(projects[activeProject]['href'] + " #footer-content", function(){				   								 // Load Project footer of next project
									 _typeface_js.renderDocument();
								 	 updateProjectNavigatorInfo();});


								 $("#content").load(projects[activeProject]['href'] + " #content", function(){


									 _typeface_js.renderDocument();
								 	 updateProjectNavigatorInfo();


								 	 // Deactivate left and right arrow
								   deactivateNavigator('left');
								   deactivateNavigator('right');
								   deactivateNavigator('up');
								   deactivateNavigator('down');




								   // Activate left/right arrow if needed
								 	 if ($('div#board').length > 0) {
											var imagesCounter	= $('div#board div.board ul li').length;

											if (imagesCounter > 0) {
												var imageCounter	= parseInt($('div#board div.board ul li.active').attr('id').split('board-').join(''));

												if (imageCounter > 1)
												  //activateNavigator('left');

												if (imageCounter < imagesCounter)
												  activateNavigator('right');
											}
								   }
								   else if ($("img.fullscreen").length > 0) {
								   	 scaleAndPositioningFullscreenImages();

									   var imageCounter = $("img.fullscreen").length;

										 if(activeImage < imageCounter-1)
										   activateNavigator('right');

										 if(activeImage > 1)
										   activateNavigator('left');
									 }

								   if(activeProject < (projects.length-1))
	    							 activateNavigator('down');

								   if(activeProject > 0)
								     activateNavigator('up');

								   // Set board on first image
								 	 activeImage = 1;
								   positioningBoard(activeImage);
								   if ($("#bg-image").length > 0)   scaleBoardBgImages();
								 });


								 break;
		}
	}
}

function archivePositioning() {

	// Archiv-Board mittig positionieren
	$('div#archive #archives').css('top', 0);
	var archives = $('div#archive div#archives div.archive');
	var archive  = $('div#archive div#archives div.active');
	if (archive.length > 0) {
		var content = $('div#content');
		var contentOffset = Math.ceil(content.offset().top);
		var contentHeight = parseInt(content.innerHeight());

		var archiveOffset = Math.ceil(archive.offset().top);
		var archiveHeight = parseInt(archive.innerHeight());

		var archiveCounter = 0;
		while (archiveCounter < (archives.length * 2) && (archiveOffset+archiveHeight) > (contentOffset+contentHeight)) {
			var allArchives = $('div#archive #archives');
			var archivesTop = parseInt(allArchives.css('top')) * (-1);
			allArchives.css('top', '-'+(archivesTop+(archiveHeight/2))+'px');

			var archiveOffset = Math.ceil(archive.offset().top);
			var archiveHeight = parseInt(archive.innerHeight());
			archiveCounter++;
		}
		/*
		var archiveCounter = 0;
		while (archiveCounter < (archives.length * 2)) {
			archiveCounter++;
		}
		*/
	}
}

function updateProjectNavigatorInfo() {
  $("#project-counter span").html(activeProject+1);
}

function activateNavigator(direction) { $('#nav-'+direction).parent().removeClass('inactive').addClass('active'); }
function deactivateNavigator(direction) { $('#nav-'+direction).parent().removeClass('active').addClass('inactive'); }
