var lightbox_opened = false;
var lightbox_image_width;
var lightbox_image_height;
var lightbox_caption_length;

/*
window.onresize = function(evt)
{
	if ( lightbox_opened === true )
	{
		lightbox_center( lightbox_image_width, lightbox_image_height, lightbox_caption_length );
	}
}
*/

document.onkeydown = function(evt)
{
	evt = evt || window.event;
	if ( ( evt.keyCode == 27 ) && ( lightbox_opened === true ) )
	{lightbox_close();}
}

function lightbox_open()
{
	lightbox_opened = true;
	document.getElementById('lightbox_page_overlay').style.display='block';
	document.getElementById('lightbox').style.display='block';
}

function lightbox_close()
{
	lightbox_opened = false;
	document.getElementById('lightbox').style.display='none';
	document.getElementById('lightbox_page_overlay').style.display='none';
}

function lightbox_center( image_width, image_height, caption_text_length )
{
	var lightbox_width, lightbox_height, viewport_width, viewport_height;

	lightbox_image_width = image_width;
	lightbox_image_height = image_height;
	lightbox_caption_length = caption_text_length;

	// --- Get viewport dimensions  ---
	viewport_width = document.documentElement.clientWidth;
	viewport_height = document.documentElement.clientHeight;

	// --- Set image dimensions, set lightbox dimensions, center the lightbox in the middle of the browser window ---
	document.getElementById('lightbox_image').width = image_width;
	document.getElementById('lightbox_image').height = image_height;
	lightbox_width = ( image_width + 20 );
/*
	if ( ( lightbox_width < 640 ) && ( caption_text_length > 0 ) )
	{
		lightbox_width = 640;
	}
*/
	lightbox_height = ( image_height + 20 );

	// --- Set width of the lightbox first so the caption text re-render in the proper width and height ---
	document.getElementById('lightbox').style.width = lightbox_width + 'px';
	if ( caption_text_length > 0 )
	{
		lightbox_height += ( 15 + document.getElementById('lightbox_caption').offsetHeight );
	}
	document.getElementById('lightbox').style.height = lightbox_height + 'px';
	document.getElementById('lightbox').style.marginLeft = -( lightbox_width / 2 ) + 'px';
	document.getElementById('lightbox').style.top = ( ( viewport_height - lightbox_height ) / 2 )  +  'px';

	// --- If the lightbox doesn't fit in the viewport, reduce by 1% and try again ---
/*	if ( ( viewport_height < ( lightbox_height + 55 ) ) && ( ( image_width > 200 ) || ( image_height > 200 ) ) ) */
	if ( ( viewport_height < ( lightbox_height + 55 ) ) && ( image_height > 200 ) )
	{
		image_width = image_width * 0.99;
		image_height = image_height * 0.99;
		lightbox_center( image_width, image_height, caption_text_length );
	}
}

function lightbox_display( image_path, caption_text )
{
	// --- Reset lightbox to 640x480 blank image with animated spinner on black background ---
	var image_width = 640;
	var image_height = 480;
	var lightbox_img = new Image()

	document.getElementById('lightbox_image').src = '/images/site/blank.png';
	document.getElementById('lightbox_caption').innerHTML = '';
	lightbox_center( image_width, image_height, 0 );

	lightbox_img.onload = function()
	{
		image_width = this.width;
		image_height = this.height;

		// --- Calculate aspect ratio of image and set size ---
//		image_width = image_width / 1.5;
//		image_height = image_height / 1.5;

		document.getElementById('lightbox_image').src = this.src;
		document.getElementById('lightbox_caption').innerHTML = caption_text;
		lightbox_center( image_width, image_height, caption_text.length );
	};
	lightbox_open();
	lightbox_img.src = image_path;
	lightbox_img=null;
}
