/******************************************************************************
 * This code is written by Xuan Wu.  Copyright 2009.
 *
 * Feel free to use this code provided you leave this comment header
 * in the file.
 ******************************************************************************/

var interval_id;

var g_title;
var g_id;
var g_type;
var g_desc;

var image_placeholder = document.getElementById('lightbox-image');
var image_caption = document.getElementById('lightbox-caption');
var image_description = document.getElementById('lightbox-description');

var g_loading = document.getElementById('loading');
var g_overlay = document.getElementById('black_overlay');
var g_content = document.getElementById('gray_content');

var tmp_image;

function key_handler(e)
{
	var event_obj = window.event ? window.event : e;
	var keycode = (event_obj.keyCode) ? event_obj.keyCode : event_obj.charCode;
	if (keycode == 27) close_light_box();
}

function load_image_src()
{
	image_placeholder.src = tmp_image.src;
	g_content.style.display='block';
	g_loading.style.display='none';
	resize_light_box();
}

function resize_element(e, w, h)
{
	e.width = w;
	e.height = h;
}

function get_window_size(w, h)
{
	if (window.innerWidth) {
		w.num = window.innerWidth;
		h.num = window.innerHeight;
	} else if (document.body) {
		w.num = document.getElementsByTagName('html')[0].clientWidth;
		h.num = document.getElementsByTagName('html')[0].clientHeight;
	} else if (document.documentElement && document.documentElement.clientWidth) {
		w.num = document.documentElement.clientWidth;
		h.num = document.documentElement.clientHeight;
	}
}

function get_content_size(content_width, content_left, w0, h0)
{
	var w = w0.num;
	var h = h0.num;
	
	var h2;
	var w2;
	
	var aspect_ratio = tmp_image.width / tmp_image.height;
	
	h2 = h*0.8 - 16 - 80;
	w2 = h2 * aspect_ratio;
	
	if (w2 > w*0.8) {
		w2 = w*0.8;
		h2 = w2 / aspect_ratio;
	}
	
	if (h2 > h*0.8) {
		h2 = h*0.8;
		w2 = h2 * aspect_ratio;
	}
	
	// Automatic dimensions adjustment
	content_width.num = 40 + w2;
	if (content_width.num > 1064) {
		content_width.num = 1064;
	}
	
	w2 = content_width.num - 40;
	h2 = w2 / aspect_ratio;
	
	resize_element(image_placeholder, w2, h2);
	
	content_left.num = (w - content_width.num) / 2.0;
}

// AJAX is not even needed!
function resize_light_box()
{
	var w0 = {num:0};
	var h0 = {num:0};
	
	get_window_size(w0, h0);
	
	var content_width = {num:0};
	var content_left = {num:0};
	
	get_content_size(content_width, content_left, w0, h0);
	
	g_content.style.width = content_width.num + 'px';
	g_content.style.left = content_left.num + 'px';
	image_description.style.width = content_width.num - 64 + 'px';
}

function open_light_box(type, id, title, desc) {
	var IE6 = (navigator.appVersion.indexOf("MSIE 6") == -1) ? false : true;
	var IE7 = (navigator.appVersion.indexOf("MSIE 7") == -1) ? false : true;
	if (IE6) return true;

	g_title = title;
	g_type = type;
	g_id = id;
	g_desc = desc;
	
	g_loading.style.display='block';
	g_overlay.style.display='block';
	
	image_caption.firstChild.nodeValue = g_title;
	image_description.firstChild.nodeValue = g_desc;

	tmp_image = new Image();
	tmp_image.onload = load_image_src;
	tmp_image.src = 'image.php?type='+g_type+'&thumb=0&id='+g_id;
	
	return false;
}

function close_light_box() {
	g_overlay.style.display='none';
	g_content.style.display='none';
}

document.onkeypress = key_handler;
window.onresize = resize_light_box;
