function positionLargeImage() {
	leftpos = ($(window).width() - $("#largeimageHolder").width()) / 2;
	toppos = ($(window).height() - $("#largeimageHolder").height()) / 2;
	$("#largeimageHolder").css("left",leftpos);
	$("#largeimageHolder").css("top",toppos);
}

function positionPreloader() {
	leftpos = ($(window).width() - $("#largeimagePreloader").width()) / 2;
	toppos = ($(window).height() - $("#largeimagePreloader").height()) / 2;
	$("#largeimagePreloader").css("left",leftpos);
	$("#largeimagePreloader").css("top",toppos);
}

function resizeHandlerWork() {
	positionLargeImage();
	positionPreloader();
	documentHeight = $(document).height();
	$("#absofter").css("height",documentHeight);	
}


function clearSlideshowTimeout() {
	window.clearTimeout("slideshowTimeout");
}

function initLargeImage(imageIndex) {
	slideshowStopped = false;
	clearSlideshowTimeout();
	$("#largeimageplaypause").removeClass("largeimageplaypausePlay");
	$("#largeimageplaypause").addClass("largeimageplaypausePause");
	largeImage(imageIndex);
}

function largeImage(imageIndex) {
	
	if(activeImage == false) {
		
		//console.log("show image "+imageIndex);
		
		positionPreloader();
		$("#largeimagePreloader").show();
				
		imagePath = imageArray[imageIndex];
		
		activeImage = imageIndex;
	
		documentHeight = $(document).height();
		$("#absofter").css("height",documentHeight);
		$("#absofter").show();
		$("#largeimage").empty();
		$("#largeimage").html("<img id='largeimageHolderImage' src='"+imagePath+"' border='0'>");
		$("#largeimage").find('img').load( function() {
			$("#largeimagePreloader").hide();
			
			$(window).bind('resize',function() {
				resizeHandlerWork();
			});
			$("#largeimagenext").bind('click',function() {
				nextButtonClicked();
			});
			$("#largeimageprev").bind('click',function() {
				prevButtonClicked();
			});
			$("#largeimageclose").bind('click',function() {
				hideLargeImage();
			});
			$("#largeimageplaypause").bind('click',function() {
				toggleSlideShow();
			});
			$(document).keyup(function(e) {
			  if (e.keyCode == 27) { hideLargeImage() }
			});
			positionLargeImage();
	        $("#largeimageHolder").delay(200).fadeIn(300, function() {
	        	$("#largeimageprev").css("left",0+"px");
	        	$("#largeimagenext").css("left",$("#largeimage").find('img').width()-$("#largeimagenext").width()+"px");
	        	$("#largeimageprev").css("top",($("#largeimage").find('img').height()-$("#largeimageprev").height())/2+"px");
	        	$("#largeimagenext").css("top",($("#largeimage").find('img').height()-$("#largeimagenext").height())/2+"px");
	        	$("#largeimagenext").fadeIn(200);
	        	$("#largeimageprev").fadeIn(200);
	        	$("#largeimageclose").css("left",$("#largeimage").find('img').width()-$("#largeimageclose").width()+"px");
	        	$("#largeimageclose").fadeIn(200);
	        	$("#largeimageplaypause").css("top",$("#largeimage").find('img').height()-$("#largeimageplaypause").height()+"px");
	        	$("#largeimageplaypause").css("left",$("#largeimage").find('img').width()-$("#largeimageplaypause").width()+"px");
	        	//$("#largeimageplaypause").fadeIn(200);
	        	if(!slideshowStopped) {
		        	//slideShowNext();
		        }
	        });
	    });
	}	
	
}

function toggleSlideShow() {
	//console.log("toggle slideshow");
	if(slideshowStopped == true) {
		startSlideShow();
	} else {
		stopSlideShow();
	}
}

function stopSlideShow() {
	clearSlideshowTimeout();
	slideshowStopped = true;
	//console.log("stop slideshow");
	$("#largeimageplaypause").removeClass("largeimageplaypausePause");
	$("#largeimageplaypause").addClass("largeimageplaypausePlay");
}

function startSlideShow() {
	//console.log("start slideshow");
	$("#largeimageplaypause").removeClass("largeimageplaypausePlay");
	$("#largeimageplaypause").addClass("largeimageplaypausePause");
	slideshowStopped = false;
	showNextTimed();
}

function slideShowNext() {
	if(!slideshowStopped) {
		clearSlideshowTimeout();
		slideshowTimeout = window.setTimeout("showNextTimed()",5000);
	}
}

function showNextTimed() {
	if(!slideshowStopped) {
		showNextImage();
	}
}

function hideLargeImage() {
	
	clearSlideshowTimeout();
	stopSlideShow();
	
	//console.log("hide image");
	
	$("#largeimagenext").hide();
   	$("#largeimageprev").hide();
   	$("#largeimageclose").hide();
	$("#largeimageplaypause").hide();
	
	$("#largeimageHolder").fadeOut(300, function() {
		$(window).unbind('resize');
		$(window).resize(function() {
			updateBgImageSize();
		});
		$(document).unbind('keyup');
		$("#largeimagenext").unbind('click');
		$("#largeimageprev").unbind('click');
		$("#largeimageclose").unbind('click');
		$("#largeimageplaypause").unbind('click');
		activeImage = false;
		$("#absofter").hide();
	});
}

function hideLargeImageAndShow(theImageIndex) {
	//console.log("hide image and show "+theImageIndex);
	$("#largeimagenext").hide();
   	$("#largeimageprev").hide();
	$("#largeimageclose").hide();
	$("#largeimageplaypause").hide();
	
	$("#largeimageHolder").fadeOut(300, function() {
		$(window).unbind('resize');
		$(window).resize(function() {
			updateBgImageSize();
		});
		$(document).unbind('keyup');
		$("#largeimagenext").unbind('click');
		$("#largeimageprev").unbind('click');
		$("#largeimageclose").unbind('click');
		$("#largeimageplaypause").unbind('click');
		activeImage = false;
		largeImage(theImageIndex);
	});
	
}

function nextButtonClicked() {
	stopSlideShow();
	showNextImage();
}

function prevButtonClicked() {
	stopSlideShow();
	showPrevImage();
}

function showNextImage() {
	if(activeImage < imageArray.length-1) {
		hideLargeImageAndShow(activeImage+1);
	} else {
		hideLargeImageAndShow(0);
	}
}

function showPrevImage() {
	if(activeImage > 0) {
		hideLargeImageAndShow(activeImage-1);
	} else {
		hideLargeImageAndShow(imageArray.length-1);
	}
}
