/**

* @author Roger

*/

var currentlyShowing
var targetShowing
var achievedShowing


function loadNext(){

	currentlyShowing+= 8

	if(currentlyShowing>elementArray.length){

		currentlyShowing = 0

	}

	show (currentlyShowing)

}



function loadPrevious(){

	currentlyShowing-= 8

	if(currentlyShowing<0){

		currentlyShowing = Math.floor((elementArray.length / 8)) * 8

	}

	show (currentlyShowing)

}



function show(fromIndex){

	$("#loader1").fadeIn(500);
	$("#loader2").fadeIn(500);

	var numToShow = 8-(fromIndex+8 - elementArray.length)
	achievedShowing = 0;
	

	if(numToShow <0) { numToShow = 8}
	if(numToShow>8)	{ numToShow = 8}
	targetShowing = numToShow;
	
	var i = 0;


	for(var i=0; i<8; i++){

		if(i<numToShow){
			
			function callback  (_element, _index){

				this.element = _element

				this.index = _index

				var context = this

				this.invoke = function(){
					$("#link"+context.index).fadeIn(1)
					$("#thumb"+context.index).attr('src','/images/ajax-loader.gif')
					$("#thumb"+context.index).fadeIn(1)
					$("#nameDiv"+context.index).css('color','black');
					loadElementInPosition(context.element, context.index)
					doneWithElement(context.index)
				}

			}

			$("#thumb"+i).fadeOut(100,new callback(elementArray[fromIndex + i], i).invoke)
			
		}else {

			$("#link"+i).fadeOut(100)

		}

	}

	$("#counter").text("["+((fromIndex/8)+1)+"/"+Math.ceil(elementArray.length/8)+"]")	
}

function doneWithElement(id){
	achievedShowing++;
	//('achieved '+achievedShowing+', target: '+ targetShowing);
	if(achievedShowing == targetShowing){
			achievedShowing = 0;
			$("#loader1").fadeOut(500);
			$("#loader2").fadeOut(500);			
	}
}



function getThumbPath(albumToken, pictureToken){
	return '/AlbumGallery/'+albumToken+'/thumbs/'+pictureToken
}





function realignThumbs(){

	for (var i=0; i<8; i++) {

		realignThumb(i)

	}

}



function realignThumb(i){

	

	var thumb = $('#thumb'+i)

	var div = $('#div'+i)

	centerElementVerticallyWithin(thumb,div)

}



function centerElementVerticallyWithin(element, within){

	//center vertically

	var offset = element.height()-within.height();

	element.css('top',-(offset/2))

}



function resizeImage(imageObject, maxWidth, maxHeight){

	var w = imageObject.width()

	var h = imageObject.height()

	if(w==h){

		imageObject.css('width',maxWidth)

		imageObject.css('height',maxHeight)

	}else if(w>h){

		var newHeight = (h/w)*maxHeight

		imageObject.css('width',maxWidth)

		imageObject.css('height',newHeight)

	} else if(h>w){

		var newWidth = (w/h)*maxWidth

		imageObject.css('width',newWidth)

		imageObject.css('height',maxHeight)					

	}

}



function resizeImageRelativeToBuffer(imageObject,bufferObject,maxWidth, maxHeight){

	var w = bufferObject.width()

	var h = bufferObject.height()

	if(w==h){

		imageObject.css('width',maxWidth)

		imageObject.css('height',maxHeight)

	}else if(w>h){

		var newHeight = (h/w)*maxHeight

		imageObject.css('width',maxWidth)

		imageObject.css('height',newHeight)

	} else if(h>w){

		var newWidth = (w/h)*maxWidth

		imageObject.css('width',newWidth)

		imageObject.css('height',maxHeight)					

	}

}
