$(document).ready(function() {	

	loadImage($('#background img.visible'));
	resizeBackgroundImage($('#background img.loaded'));

	// on window resize
	$(window).resize(function(){
		resizeBackgroundImage($('#background img.loaded'));
	});
});


// load image
function loadImage(image){
	if(!image.hasClass('loaded')){
		var link = image.attr('id').split('_');
		image.attr('src', function(){
			return '/images/' + link[1] + '.jpg';
		}).addClass('loaded').load(function(){
			loadPrevNextImage(image);
		});
	} else {
		loadPrevNextImage(image);
	}
}
function loadPrevNextImage(image){
		if(image.next().not('.loaded').length){
			loadThisImage(image.next());
		}
		if (image.prev().not('.loaded').length){
			loadThisImage(image.prev());
		}
}
function loadThisImage(image){
		var link = image.attr('id').split('_');
		image.attr('src', function(){
			return '/images/' + link[1] + '.jpg';
		}).addClass('loaded');

}
// resize the background image
function resizeBackgroundImage(bgImage)
{
	var availableWidth = $(window).width();
	var availableHeight = $(window).height();
	var imageHeight = 851;
	var imageWidth = 1280;
	var curWidth;
	var curHeight;
	
	if(imageHeight < availableHeight || imageWidth < availableWidth)
	{
		var percWidth = Math.floor((availableWidth * 100) / imageWidth);
		var percHeight = Math.floor((availableHeight * 100) / imageHeight);
		
		if(percWidth > percHeight)
		{
			curWidth = availableWidth;
			curHeight = resizeImage(imageWidth, imageHeight, availableWidth, 0, 'returnheight');
		
		} else if(percWidth < percHeight)
		{
			curHeight = availableHeight;
			curWidth = resizeImage(imageWidth, imageHeight, 0, availableHeight, 'returnwidth');
		}
	} else
	{
		//image full size
		curHeight = imageHeight;
		curWidth = imageWidth;
	}
	
	bgImage.css('width', curWidth);
	bgImage.css('height', curHeight);
}

function resizeImage (w, h, nw, nh, coord)
{
	if(coord == 'returnheight')
	{
		var newH = Math.floor((h * nw) / w);
		return newH;
	} else if(coord == 'returnwidth')
	{
		var newW = Math.floor((w * nh) / h);
		return newW;
	}
}