/**
 * LCS.JS
 * v10.05
 */

var lcs_type = null, lcs_box = null, lcs_input = null,lcs_prev_keywords = "", lcs_timer = null, lcs_offset = -1, lcs_num_items = 0, lcs_items = null;

function lcs_init(type, id)
{
	if (!id) id = "";
	lcs_type = type + id;

	lcs_stop();
	lcs_prev_keywords = "";

	lcs_input = document.getElementById("id_ajax_target_lcs_input_" + lcs_type);
	lcs_box = document.getElementById("id_ajax_target_lcs_box_" + lcs_type);

	lcs_suggest();

	return;
}

function lcs_stop()
{
	if (lcs_timer) clearTimeout(lcs_timer);
}

function lcs_hide()
{
	if (lcs_box)
	{
		lcs_offset = -1;
		lcs_box.style.display = "none";
	}
	return;
}

function lcs_click_out(e)
{
	if (lcs_box)
	{
		if (!e) e = window.event;
		var tg = (window.event ? e.srcElement : e.target);

		while (tg.nodeName != 'HTML')
		{
			if (tg == lcs_box || tg == lcs_input) return;
			tg = tg.parentNode;
		}
		lcs_stop();
		lcs_hide();
	}
	return;
}

function lcs_key(e)
{
	var key = (window.event ? window.event.keyCode : e.which);

	switch (key)
	{
		//Up
		case 38:
			lcs_offset --;
			if (lcs_offset < 0) lcs_offset = lcs_num_items;
			lcs_highlight(lcs_offset);
			lcs_select(lcs_offset);
		break;

		//Down
		case 40:
			lcs_offset ++;
			if (lcs_offset > lcs_num_items) lcs_offset = 0;
			lcs_highlight(lcs_offset);
			lcs_select(lcs_offset);
		break;

		case 13: //Enter
		case 27: //ESC
			lcs_stop();
			lcs_hide();
		break;

		default:
			lcs_offset = -1;
		break;
	}

	return false;
}

function lcs_highlight(offset)
{
	lcs_offset = offset;

	if (lcs_items && lcs_num_items >= 0 && offset > -1)
	{
		for (var i=0;i<=lcs_num_items;i++)
		{
			lcs_items[i].className = (i == offset ? "selected" : "");
		}
	}
}

function lcs_select(offset)
{
	if (lcs_items && lcs_num_items >= 0 && offset > -1)
	{
		lcs_input.value =  lcs_items[offset].innerHTML.replace("&amp;", "&");
		lcs_input.focus();
	}
}

function lcs_suggest()
{
	if (lcs_type && lcs_input && lcs_box)
	{
		var keywords = lcs_input.value;

		if (keywords.length > 0)
		{
			if (keywords != lcs_prev_keywords && lcs_offset == -1)
			{
				lcs_box.style.display = "block";
				lcs_box.innerHTML = inline_pic;

				if (xhr && xhr.readyState !== 0)
				{
					return;
				}
				xhr = getXhr();

				if (xhr)
				{
					xhr.onreadystatechange = function () {
						if (xhr.readyState == 4 && xhr.status == 200)
						{
							if (xhr.responseText !== "")
							{
								lcs_box.style.display = "block";
								lcs_box.innerHTML = xhr.responseText;
								lcs_items = lcs_box.getElementsByTagName("li");
								lcs_num_items = lcs_items.length - 1;
							}
							else
							{
								lcs_hide();
								lcs_offset = -1;
							}
							xhr = null;
						}
					};
				}

				xhr.open("POST", jroot + "/ajax.php", true);
				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				xhr.send("commit=lcs&keywords=" + encodeURIComponent(keywords) + "&type=" + lcs_type);
			}
		}
		else
		{
			lcs_hide();
		}

		lcs_prev_keywords = keywords;
	}

	lcs_timer = setTimeout("lcs_suggest()", 1000);

	return;
}


