function CreateAJAX()
{
	var ajax;
	try
	{
		ajax = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
			}
		}
	}
	return ajax;
}

function UpdateEntry(phrase_id, entry_id, response)
{
	if (response.search('OK') == -1)
	{
		return;
	}

	var ele = document.getElementById('entry' + entry_id);
	var phrase = document.getElementById('sgDiv' + phrase_id);
	if (!ele || !phrase)
	{
		return
	}

	phrase.removeChild(ele);

	ele = document.getElementById('phrase' + phrase_id);

	if (response.search('done') != -1)
	{
		ele.className = 'phraseDone';
	}
	else if (response.search('waiting') != -1)
	{
		ele.className = 'phraseWaiting';
	}
	else if (response.search('none') != -1)
	{
		ele.className = 'phraseNone';
	}
}

function UpdatePhrase(phrase_id, response, text, user_id)
{
	var ele, pos;

	ele = document.getElementById('response' + phrase_id);
	pos = response.search(':');

	if (pos != -1)
	{
		ele.innerHTML = "--> " + response.substr(pos+1);
	}
	else
	{
		var id, href;

		id = response;
		ele.innerHTML = "--> Added!";

		href = '<a href="#" onclick="RemoveEntry(' + 
			   phrase_id + ',' + 
			   id + ',' + 
			   user_id + 
			   '); return false;">';
		href += '<img src="icon_bad.gif" alt="Remove" title="Remove" border="0"' + 
				    ' style="vertical-align: middle"/></a> ';

		if (ele = document.getElementById('entry' + id))
		{
			ele.innerHTML = href + text + '<br/>';
		}
		else
		{
			var span, old_disp;

			ele = document.getElementById('sgDiv' + phrase_id);
			ele.style.display = 'block';
			
			span = document.createElement("span");
			span.id = 'entry' + id;
			span.className = 'entry';
			span.innerHTML = href + text;
			ele.appendChild(document.createElement("br"));
			ele.appendChild(span);
			ele = document.getElementById('phrase' + phrase_id);
			if (ele.className == 'phraseNone')
				ele.className = 'phraseDone';
			else
				ele.className = 'phraseWaiting';
		}
	}
}

function SubmitPhrase(phrase_id, user_id)
{
	var url, phrase;

	ele = document.getElementById('response' + phrase_id);
	ele.innerHTML = '';
	phrase = document.getElementById('sg' + phrase_id);

	if (phrase.value == '')
	{
		phrase = document.getElementById('response' + phrase_id);
		phrase.innerHTML = '--> Please enter a translation first.';
		return;
	}
	
	url = 'index.php?go=translate&op=add&phrase=' + phrase_id + '&sg=' + encodeURIComponent(phrase.value);

	var ajax = CreateAJAX();
	ajax.abort();
	ajax.open("GET", url, true);
	ajax.onreadystatechange = function()
		{
			if (ajax.readyState == 4)
			{
				UpdatePhrase(phrase_id, ajax.responseText, phrase.value, user_id);
			}
		}
	ajax.send(null);
}

function RemoveEntry(phrase_id, entry_id, user_id)
{
	var url, phrase;

	url = 'index.php?go=translate&op=reject&entry=' + entry_id;

	var ajax = CreateAJAX();
	ajax.abort();
	ajax.open("GET", url, true);
	ajax.onreadystatechange = function()
		{
			if (ajax.readyState == 4)
			{
				UpdateEntry(phrase_id, entry_id, ajax.responseText);
			}
		}
	ajax.send(null);
}


