var curr = 1;
var fadeDuration;
var photoDuration;
var img = [];
var titles = [];
var forward = 1;
var isAnimation = 0;

jQuery.fn.initiate = function(attr) {
	attr = attr || {};
	fadeDuration = attr.fade || 500;
	photoDuration = attr.duration || 3000;

	$(this).each(function(){
		$(this).find("a").each(function(){
			img.push($(this).attr("href"));
			titles.push($(this).attr("title"));	
		});
		var j = new Image();
		var container = this;
		$(this).empty();
		$(j).attr('src', img[0]).css({position:'absolute',top:0,left:0,'z-index':0}).load(function(){
			$(container).append(this);
		});
	});
	
	// set total number
	var outputTotal = "";
	var outputNr    = "";
	if (img.length < 10) outputTotal += "0";
	if (curr < 10) outputNr += "0";
	outputTotal += img.length;
	outputNr    += curr;
	$('span#actnr').html(outputNr);
	$('span#totalnr').html(outputTotal);
	$('span#title').html(unescape(titles[0]));
	
}

function spinMe() {
	var interval = Math.round(photoDuration / 36);
	var offsetNr = 0;
	var container = $('#slideshow');
	if (forward != 1) {
		forward = 1;
		curr++;
		curr++;
	}
	
	if (curr == img.length) {
		curr = 0;
	}

	
	
	function initSpin(container) {
		var timer = setInterval( function(){
			if (isAnimation) {
				var bgoffset = offsetNr * 16;
				offsetNr++;
				if (offsetNr > 35) {
					offsetNr = 0;
					var i = new Image();
					$(i).load(function(){
						if (curr == img.length) {
							clearInterval(timer);
							toggleAnimation();
						}
						$(container).append(this);
						$(this).css({opacity: 0.0, 'z-index': 2});
						$(container).find('img:first').css({'z-index': 1});
						$('#imagetitle').animate({opacity: 0.0}, fadeDuration);
						$(container).find('img:first').animate({opacity: 0.0}, fadeDuration, function() {
							$(container).find('img:first').remove();
							$(container).find('img:first').animate({opacity: 1.0}, fadeDuration);
							displayActNumber();
						});
					}).attr('src', img[curr++]).css({position:'absolute',top:0,left:0,'z-index':8});
				}
				$('#animation').css('background-position', '-' + bgoffset + 'px 0');
			} else {
				clearInterval(timer);
			}
		}, interval );
	};
	
	initSpin(container);
}

jQuery.fn.nextImage = function() {
	if (forward != 1) {
		forward = 1;
		curr++;
		curr++;
	}
	if (curr == img.length) {
		curr = 0;
	}
	if (isAnimation) toggleAnimation();
	var container = $('#slideshow');
	var i = new Image();
	$(i).load(function(){
		$(container).append(this);
		$(this).css({opacity: 0.0, 'z-index': 2});
		$(container).find('img:first').css({'z-index': 1});
		$('#imagetitle').animate({opacity: 0.0}, fadeDuration);
		$(container).find('img:first').animate({opacity: 0.0}, fadeDuration, function() {
			$(container).find('img:first').remove();
			$(container).find('img:first').animate({opacity: 1.0}, fadeDuration);
			displayActNumber();
		});
	}).attr('src', img[curr++]).css({position:'absolute',top:0,left:0,'z-index':8});
}

jQuery.fn.lastImage = function() {
	if (forward == 1) {
		forward = 0;
		curr--;
		curr--;
	}
	if (curr < 0) {
		curr = img.length - 1;
	}
	if (isAnimation) toggleAnimation();
	var container = $('#slideshow');
	var i = new Image();
	$(i).load(function(){
		$(container).append(this);
		$(this).css({opacity: 0.0, 'z-index': 2});
		$(container).find('img:first').css({'z-index': 1});
		$('#imagetitle').animate({opacity: 0.0}, fadeDuration);
		$(container).find('img:first').animate({opacity: 0.0}, fadeDuration, function() {
			$(container).find('img:first').remove();
			$(container).find('img:first').animate({opacity: 1.0}, fadeDuration);
			displayActNumber();
		});
	}).attr('src', img[curr--]).css({position:'absolute',top:0,left:0,'z-index':8});
	
}

function displayActNumber() {
	var outputNr    = "";
	var myCurr      = curr;
	if (forward != 1) {
		myCurr = curr+2;
	}
	if (myCurr < 10) outputNr += "0";
	outputNr    += myCurr;
	$('span#actnr').html(outputNr);
	$('span#title').html(unescape(titles[myCurr - 1]));
	$('#imagetitle').animate({opacity: 1.0}, fadeDuration);
}

function toggleAnimation() {
	if (isAnimation) {
		isAnimation = 0;
		$('#animation').animate({opacity: 0.0}, 500);
		$('#player').css('backgroundImage', 'url(../img/controler_play.gif)');
	} else {
		isAnimation = 1;
		$('#animation').animate({opacity: 1.0}, 500);
		$('#player').css('backgroundImage', 'url(../img/controler_pause.gif)');
		spinMe();
	}
}