//Copyright (c) 2008 Ken Innes IV

function get_ajax()
{
	try { return new XMLHttpRequest(); } catch (e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	return null;
}
var ajax_request = get_ajax();
var index_image_id = null;
var image = { 'id' : null, 'file' : '', 'title' : '', 'desc' : '', 'total' : null };

function request_update_index_image(image_id)
{

	index_image_id = image_id || index_image_id; // set the global

	var request_url = '/!index/!imginf/index_image.php' + (index_image_id !== null ? '?image_id=' + escape(index_image_id) : '');
	ajax_request.open("GET", request_url, true);
	ajax_request.onreadystatechange = update_index_image;
	ajax_request.send(null);
}

function update_index_image(image_data)
{
	if(ajax_request && ajax_request.readyState == 4 && ajax_request.status == 200)
	{
		image_data = ajax_request.responseText.split("|");
	}
	if (typeof(image_data) == 'undefined')
	{
		return;
	}

	image['file']	= image_data[0] || '';
	image['title']	= image_data[1] || '';
	image['desc']	= image_data[2] || 'No information available.';
	image['id']		= image_data[3] || 1;
	image['total']	= image_data[4] || '';
	index_image_id = image['id']; // set global
	if (image['file'] && image['title'])
	{
		var index_image_file = document.getElementById('index_image_file');
		if (index_image_file)
		{
			index_image_file.src = '/!index/!imginf/' + image['file'];
			index_image_file.title = image['title'];
			index_image_file.style.display = '';
			index_image_file.style.visibility = 'visible';
			setTimeout('index_image_loaded()', 15);
		}
	}
}

function index_image_loaded()
{
	var index_image_file, index_image_head, index_image_foot, index_image_info;

	if (index_image_head = document.getElementById('index_image_head'))
	{
		index_image_head.innerHTML = image['title'];
	}
	if (index_image_foot = document.getElementById('index_image_foot'))
	{
		index_image_foot.innerHTML = image['total'] ? ('<span onclick="index_image_prompt();" style="cursor:pointer;" title="Jump to a number">Image ' + image['id'] + ' of ' + image['total'] + '<\/span>') : '';
	}
	if (index_image_info = document.getElementById('index_image_info'))
	{
		index_image_info.innerHTML = image['desc'];
		index_image_info.style.height = '';
	}
}

function thisImg(image_id)
{
	request_update_index_image(image_id);
}

function prevImg()
{
	request_update_index_image(--index_image_id);
}

function nextImg()
{
	request_update_index_image(++index_image_id);
}


var index_image_timer = null;

function index_image_show()
{
	var index_image_file = document.getElementById('index_image_info_area');
	if (index_image_file)
	{
		index_image_file.style.opacity = (index_image_file.style.opacity) ? (parseFloat(index_image_file.style.opacity) + 0.1) : '0.0';
		index_image_file.style.display = '';
	}
	if (!index_image_file || parseFloat(index_image_file.style.opacity) >= 1.0)
	{
		clearTimeout(index_image_timer);
	}
}
function index_image_hide()
{
	var index_image_file = document.getElementById('index_image_info_area'), index_image_info;
	if (index_image_file)
	{
		index_image_file.style.opacity = (index_image_file.style.opacity) ? (parseFloat(index_image_file.style.opacity) - 0.1) : '0.0';
	}
	if (!index_image_file || parseFloat(index_image_file.style.opacity) <= 0)
	{
		if(index_image_file) index_image_file.style.display = 'none';
		clearTimeout(index_image_timer);
		if (index_image_info = document.getElementById('index_image_info'))
		{
			index_image_info.innerHTML = image['desc'];
			index_image_info.style.height = '';
		}
	}
}

function index_image_show_info()
{
	clearInterval(index_image_timer);
	index_image_timer = setInterval("index_image_show()", 10);
}

function index_image_hide_info()
{
	clearInterval(index_image_timer);
	index_image_timer = setInterval("index_image_hide()", 10);
}


function request_image_list()
{
	var request_url = '/!index/!imginf/listing.php';
	ajax_request.open("GET", request_url, true);
	ajax_request.onreadystatechange = display_image_list;
	ajax_request.send(null);
}
function display_image_list()
{
	if(ajax_request && ajax_request.readyState == 4)
	{
		var image_list = ajax_request.responseText;
		index_image_show();
		var index_image_info;
		if (index_image_info = document.getElementById('index_image_info'))
		{
			index_image_info.innerHTML = '<b>View another image:</b>' + image_list;
			index_image_info.style.height = '428px';
		}
	}
}

function index_image_prompt(message)
{
	request_image_list();

/*
	var result = prompt((message ? message + ' ' : '') + "Which image would you like to view?", "");
	if (result)
	{
		if (result.toLowerCase() == 'all')
		{
			document.location.href = '/!index/!imginf/index.htm';
			return;
		}
		result = parseInt(result);
		if (isNaN(result))
		{
			index_image_prompt("That is not a valid number.");
		}
		else if (result < 1 || (image['total'] && result > image['total']))
		{
			index_image_prompt("That value is out of range.");
		}
		else
		{
			request_update_index_image(result);
		}
	}
*/
}
