Ape.Element.Lists_galerie = function(){
	
	var that = this,
		uebersichtAnimationSpeed = 150,
		einzelnAnimationSpeed = 200,
		position = 0,
		page = 0,
		pages = 1,
		basicLeft_einzeln = 168,
		basicWidth_einzeln = 518,
		basicLeft_thumb = 370,
		basicWidth_thumb = 103,
		aktivGalerie = 0,
		animation = 0,
		openGalerieFadeSpeedOut = 200,
		openGalerieFadeSpeedIn = 200;
	
	this.start = function(){
		bindungs_uebersicht();
		bindings_einzeln();
		bindings_thumb();
		bindungs_pagination();
	};
	
	function bindungs_uebersicht(){
		$('.fotoshow_uebersicht > div').unbind('click.changeGalerie').bind('click.changeGalerie', openGalerie).unbind('mouseenter.animate').bind('mouseenter.animate', function(){
			
			var height_cite = $('cite.datum', this).height()+parseInt($('cite.datum', this).css('padding-top'),10)+parseInt($('cite.datum', this).css('padding-bottom'),10)+parseInt($('cite.datum', this).css('border-top-width'),10)+parseInt($('cite.datum', this).css('border-bottom-width'),10);
			$('cite.datum', this).stop().animate({top: "-"+height_cite+'px'}, uebersichtAnimationSpeed);
			
			var height_strong = $('strong', this).height()+parseInt($('strong', this).css('padding-top'),10)+parseInt($('strong', this).css('padding-bottom'),10)+parseInt($('strong', this).css('border-top-width'),10)+parseInt($('strong', this).css('border-bottom-width'),10);
			$('strong', this).stop().animate({bottom: "-"+height_strong+'px'}, uebersichtAnimationSpeed);
					
		}).unbind('mouseleave.animate').bind('mouseleave.animate', function(){
			$('cite.datum', this).stop().animate({top: 0}, uebersichtAnimationSpeed);
			$('strong', this).stop().animate({bottom: 0}, uebersichtAnimationSpeed);
		});
	}
	function bindings_einzeln(){
		$('.fotoshow_einzeln .bild_weiter').unbind('click.bild_weiter').bind('click.bild_weiter', showNextPicture);
		$('.fotoshow_einzeln .bild_zurueck').unbind('click.bild_zurueck').bind('click.bild_zurueck', showLastPicture);
	}
	function bindings_thumb(){
		$('.fotoshow_einzeln .bilder_thumb .scroller img').unbind('click.showthumb').bind('click.showthumb', function(){
			var number = parseInt($(this).attr('id').split('_').pop(), 10);
			if(position != number){
				showPicture(number);
			}
		});
	}
	function bindungs_pagination(){
		
		pages = Math.ceil((that.galerien.length / that.itemsPerPage));
		//var maske = Math.pow(10, Math.floor(Math.log(zahl) / Math.LN10));
		//var pages = Math.floor(zahl / maske) * maske;
		//var pages = zahl;
		
		var targetContent = $('.pagination .innen ');
		
		$('div .zurueck', targetContent).unbind('click.zuruck').bind('click.zuruck', showLastUebersichtPage);
		$('div .weiter', targetContent).unbind('click.weiter').bind('click.weiter', showNextUebersichtPage);
		
		var pagesLinks = '';
		for(var i = 0; i < pages; i++){
			pagesLinks += '<a href="javascript:;" id="paginationPage_'+i+'">'+(i+1)+'</a>';
		}
		$('.seitenlinks', targetContent).html(pagesLinks);
		
		$('.seitenlinks a', targetContent).unbind('click.paging').bind('click.paging', function(){
			var id = parseInt($(this).attr('id').split('_').pop(), 10);
			showUebersichtByPage(id);
		});
	}
	function showUebersichtByPage(newpage){
		if(newpage >= 0 && newpage < pages){
			page = newpage;
			statistik();
			$('.fotoshow_uebersicht').fadeOut(openGalerieFadeSpeedOut, function(){
				var uebersichtItems = '';
				for(var i = page*that.itemsPerPage; i < ((page*that.itemsPerPage)+that.itemsPerPage); i++){
					if(i < that.galerien.length){
						uebersichtItems += '<div id="galerie_'+i+'" ';
						if(i == aktivGalerie){
							uebersichtItems += 'class="aktiv" ';
						}
						uebersichtItems += '>';
						uebersichtItems += '<cite class="datum">'+that.galerien[i].D+'</cite>';
						uebersichtItems += '<cite class="rahmen">Rahmen</cite>';
						uebersichtItems += '<a href="javascript:;">Fotoshow &ouml;ffnen</a>';
						uebersichtItems += '<strong>'+that.galerien[i].T+'</strong>';
						uebersichtItems += '<img src="'+that.galerien[i].B[0].me+'" alt="'+that.galerien[i].B[0].te+'" />';
						uebersichtItems += '<img class="load" src="/img/galerie_ajax_loader_uebersicht.gif" alt="" />';
						uebersichtItems += '</div>';
					}
				}
				$('.fotoshow_uebersicht').html(uebersichtItems).fadeIn(openGalerieFadeSpeedIn);
				bindungs_uebersicht();
			});
			
		}
	}
	function showNextUebersichtPage(){
		showUebersichtByPage(page+1);
	}
	function showLastUebersichtPage(){
		showUebersichtByPage(page-1);
	}
	function showNextPicture(){
		showPicture(position+1);
	}
	function showLastPicture(){
		showPicture(position-1);
	}
	function showPicture(number){
		number = parseInt(number, 10);
		var element;
		if(animation === 0 && number >= 0 && number < that.galerien[aktivGalerie].B.length){
			
			statistik();
			
			var newLeft_einzeln = basicLeft_einzeln - (basicWidth_einzeln*number);
			animation++;
			$('.fotoshow_einzeln .bilder_big .scroller').animate({left: newLeft_einzeln}, einzelnAnimationSpeed, lessAnimation);
			
			element = $('.fotoshow_einzeln .bilder_big .scroller div#einzeln_'+position);
			if(element.length > 0){
				animation++;
				element.removeClass('aktiv').animate({opacity: 0.3}, einzelnAnimationSpeed, lessAnimation);
			}
			element = $('.fotoshow_einzeln .bilder_big .scroller div#einzeln_'+number);
			if(element.length > 0){
				animation++;
				element.animate({opacity: 1}, einzelnAnimationSpeed, function(){
					$(this).addClass('aktiv');
					lessAnimation();
				});
			}
			var newLeft_thumb = basicLeft_thumb - (basicWidth_thumb*number);
			animation++;
			
			var targetContent = $('.fotoshow_einzeln .bilder_thumb .scroller');
			targetContent.animate({left: newLeft_thumb}, einzelnAnimationSpeed, lessAnimation);
			$('img#thumb_'+position, targetContent).removeClass('aktiv');
			$('img#thumb_'+number,   targetContent).addClass('aktiv');
			
			var loadAdditional = 0;
			
			if(number > position){
				loadAdditional = 1;
			}
			position = number;
			
			if(loadAdditional == 1){
				loadAdditionalContents();
			}
			
		}
	}
	function loadAdditionalContents(){
		
		var lastid = parseInt($('.fotoshow_einzeln .bilder_big .scroller div:last-child').attr('id').split('_').pop(), 10);
				
		loadAdditionalContents_einzeln(lastid);
		loadAdditionalContents_thumb(lastid);
		
		bindings_einzeln();
		bindings_thumb();
		
		initLightbox();
	}
	function loadAdditionalContents_einzeln(lastid){
		var additionalsEinzeln = '';
		
		for(var i = (lastid+1); i < (position+6); i++){
			
			if(i < that.galerien[aktivGalerie].B.length){
				additionalsEinzeln += getEinzelnCode(i);
			}
		}
		$('.fotoshow_einzeln .bilder_big .scroller').append(additionalsEinzeln);
	}
	function loadAdditionalContents_thumb(lastid){
		
		
		var additionalsThumb = '';
		
		for(var i = (lastid+1); i < (position+6); i++){
			
			if(i < that.galerien[aktivGalerie].B.length){
				additionalsThumb += getThumbCode(i);
			}
		}
		$('.fotoshow_einzeln .bilder_thumb .scroller').append(additionalsThumb);
	}
	function lessAnimation(){
		animation = animation-1;
	}
	function openGalerie(){
		
		statistik();
		
		var galerieNumber = parseInt($(this).attr('id').split('_').pop(), 10);
		
		if(aktivGalerie != galerieNumber){
			
			$('.fotoshow_uebersicht div#galerie_'+aktivGalerie).removeClass('aktiv');
			$('.fotoshow_uebersicht div#galerie_'+galerieNumber).addClass('aktiv');
			
			aktivGalerie = galerieNumber;
			position = 0;
			
			var gal = that.galerien[aktivGalerie];
			var targetContent = $('.fotoshow_einzeln');
			
			/* Allgemein start */ 
			$('.bilder_thumb', targetContent).fadeOut(openGalerieFadeSpeedOut);
			$('.bilder_big', targetContent).fadeOut(openGalerieFadeSpeedOut, function(){
				
				/* Headline start */
				$('.bilder_big .headline h2', targetContent).html(''+gal.T);
				$('.bilder_big .headline strong', targetContent).html(''+gal.D);
				/* Headline end */
				
				/* Thumbnails start */
				var thumbnails = '';
				for(var i in gal.B){
					if(i < 5){
						thumbnails += getThumbCode(i);
					}
				}
				$('.bilder_thumb .scroller', targetContent).css('left', basicLeft_thumb+'px').width((basicWidth_thumb+20)*gal.B.length).html(thumbnails); 
				/* Thumbnails end */
				
				
				/* Einzeln start */
				var einzeln = '';
				for(var p in gal.B){
					if(p < 5){
						einzeln += getEinzelnCode(p);
					}
				}
				$('.bilder_big .scroller', targetContent).css('left',basicLeft_einzeln+'px').width(basicWidth_einzeln*gal.B.length).html(einzeln); 
				/* Einzeln end */
				
				
				/* Reset Bindings */
				bindings_einzeln();
				bindings_thumb();
				initLightbox();
				
				$('.bilder_big', targetContent).fadeIn(openGalerieFadeSpeedIn);
				$('.bilder_thumb', targetContent).fadeIn(openGalerieFadeSpeedIn);
				
			});
			/* Allgemein end */ 
		}
	}
	function getThumbCode(i){
		var gal = that.galerien[aktivGalerie].B[i];
		var thumbnails = '';
		thumbnails += '<img id="thumb_'+i+'" ';
		if(parseInt(i,10) === 0){
			thumbnails += 'class="aktiv" ';
		}
		thumbnails += 'src="'+gal.th+'" alt="'+gal.te+'" />';
		
		return thumbnails;
	}
	function getEinzelnCode(i){
		var gal = that.galerien[aktivGalerie].B[i];
		var einzeln = '';
		einzeln += '<div id="einzeln_'+i+'" ';
		if(parseInt(i,10) === 0){
			einzeln += 'class="aktiv" style="opacity: 1;" ';
		}
		einzeln += '><a class="lightbox" rel="lightbox" href="'+gal.fu+'">Vollbild</a>';
		einzeln += '<img class="image" src="'+gal.la+'" alt="'+gal.te+'" />';
		einzeln += '<img class="load" src="/img/galerie_ajax_loader.gif" alt="" />';
		einzeln += '<strong>'+gal.te+'</strong></div>';
		
		return einzeln;
	}
	function statistik(){
		//deaktiviert da agof not defined	
		//content_click(agof, prod, wm_page, wm_group);
	}
};

