// **************************************************************
//
// Copyright by PixelProduction 2009
// www.pixelproduction.de
//
// Autor:	js
// Datum:	27.10.2009
//
// **************************************************************

// Diese Variablen ggf. anpassen
var scrollerNumberOfVisibleImages = 3;
var scrollerAnimationSpeed = 350;

// ab hier keine Anpassungen mehr nötig
var scroller;
var scrollerContent;
var scrollerLinks;
var scrollerButtonLeft;
var scrollerButtonRight;
var scrollerContentWidth = 0;
var scrollerOffsetX = 0;
var scrollerNumberOfImages = 0;
var scrollerImageWidth = 0;

function hideScrollButtonLeft() {
	$(scrollerButtonLeft).css("display", "none");
}

function hideScrollButtonRight() {
	$(scrollerButtonRight).css("display", "none");
}

function showScrollButtonLeft() {
	$(scrollerButtonLeft).css("display", "block");
}

function showScrollButtonRight() {
	$(scrollerButtonRight).css("display", "block");
}

function scrollerScrollLeft() {
	if (scrollerOffsetX > 0) {
		scrollerOffsetX -= scrollerImageWidth;
		if (scrollerOffsetX <= 0) {
			hideScrollButtonLeft();
		}
		$(scroller).animate( {scrollLeft:scrollerOffsetX }, scrollerAnimationSpeed);
		$(scrollerLinks).animate( {scrollLeft:scrollerOffsetX }, scrollerAnimationSpeed);
		showScrollButtonRight();
	} else {
		hideScrollButtonLeft();
	}
}

function scrollerScrollRight() {
	if ( scrollerOffsetX < (scrollerContentWidth - (scrollerNumberOfVisibleImages * scrollerImageWidth)) ) {
		scrollerOffsetX += scrollerImageWidth;
		if ( scrollerOffsetX >= (scrollerContentWidth - (scrollerNumberOfVisibleImages * scrollerImageWidth)) ) {
			hideScrollButtonRight();
		}
		$(scroller).animate( {scrollLeft:scrollerOffsetX }, scrollerAnimationSpeed);
		$(scrollerLinks).animate( {scrollLeft:scrollerOffsetX }, scrollerAnimationSpeed);
		showScrollButtonLeft();
	} else {
		hideScrollButtonRight();
	}
}

function scrollerLoadImage(src) {
  $('#images_big_image img').fadeOut("fast", function(){
	  var img = new Image();
	  $(img)
		.load(function () {
		  $(this).hide();
		  $('#images_big_image')
			.empty()
			.removeClass('loading')
			.append(this);
		  $(this).fadeIn();
		})
		.error(function () {
			alert('FEHLER: Das Bild konnte leider nicht geladen werden!');
		})
		.attr('src', src);
	});
}

$(function(){
	scroller = $('div#images_scroller');
	scrollerContent = $('div#images_scroller_content');
	scrollerLinks = $('div#images_scroller_links');
	scrollerButtonLeft = $('div#images_scroller_btn_left');
	scrollerButtonRight = $('div#images_scroller_btn_right');
	
	var children = $(scrollerContent).children();
	scrollerNumberOfImages = children.length;
	
	if (scrollerNumberOfImages > scrollerNumberOfVisibleImages) {
	
		scrollerImageWidth = $('div#images_scroller_content img:first').outerWidth(true);
		scrollerContentWidth =  scrollerImageWidth * scrollerNumberOfImages;
		scrollerOffsetX = $(scroller).scrollLeft();
		
		$(scrollerButtonLeft).click(function(e){
			scrollerScrollLeft();
		});
	
		$(scrollerButtonRight).click(function(e){
			scrollerScrollRight();
		});
		
		$("div#images_scroller_links_content").children().each(function(i){
			$(this).attr("id", "scrollerindex_"+i);
		});
		
	} else {
		
		hideScrollButtonRight();
		
	}
	
	hideScrollButtonLeft();
	
	$('div#images_scroller_links_content a').click(function(e){
		e.preventDefault(); 
		scrollerLoadImage($(this).attr("href"));
		var id = $(this).attr("id");
		var index = id.split('_')[1];
		var offsetIndex = Math.floor(scrollerOffsetX / scrollerImageWidth);
		if (index <= offsetIndex) {
			scrollerScrollLeft();
		}
		if (index >= offsetIndex + (scrollerNumberOfVisibleImages - 1)) {
			scrollerScrollRight();
		}
	});
});