var hideResults = false;

function toggleHide (linkElement)
{
	hideResults = !hideResults;
	var els = document.getElementsByTagName('td');
	for (i = 0, j = 0; i < els.length; i++)
	{
		if (els[i].className == 'result')
		{
			els[i].style.visibility = hideResults ? 'hidden' : 'visible';
		}
	}

	linkElement.innerHTML = hideResults ? 'Show Results' : 'Hide Results';
	
	return false;
}

function ajaxPost (formElement, doWarning, url)
{
	var preservedForm;
	var xhttp;
	var i;
	var params = 'ajax=1';
	var gotValue = false;

	if (doWarning)
	{
		if (!confirm ('WARNING: This will permanently affect Liquibet stats and rankings and CANNOT BE UNDONE. Please double check you have selected the correct winner, then press OK to continue.'))
			return false;
	}
	
	for (i = 0; i < formElement.elements.length; i++)
	{
		if (formElement.elements[i].type == 'radio' || formElement.elements[i].type == 'checkbox')
		{
			if (!formElement.elements[i].checked)
				continue;
			else
				gotValue = true;
		}
			
		params += '&' + formElement.elements[i].name + '=' + formElement.elements[i].value;
	}

	if (!gotValue)
	{
		alert ('You must select a vote option!');
		return false;
	}

	if (window.XMLHttpRequest)
	{
		xhttp = new XMLHttpRequest();
	}
	else
	{
		try
		{
			xhttp = new ActiveXObject("Msxml2.XMLHTTP.6.0");
		}
		catch (e)
		{
			try
			{
				xhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
			}
			catch (e)
			{
				try
				{
					xhttp = new ActiveXObject('Msxml2.XMLHTTP');
				}
				catch (e)
				{
					try
					{
						xhttp = new ActiveXObject('Microsoft.XMLHTTP');
					}
					catch (e)
					{
						xhttp = null;
					}
				}
			}
		}
	}

	if (!xhttp)
		return true;

	xhttp.open ('POST', url, true);

	xhttp.onreadystatechange = function()
	{
		if (xhttp.readyState == 4)
		{
			if (xhttp.responseText)
			{
				if (xhttp.status == 200)
					formElement.innerHTML = xhttp.responseText;
				else if (xhttp.status == 202)
				{
					formElement.innerHTML = preservedForm;
					alert (xhttp.responseText);
				}
				else
					formElement.innerHTML = 'Vote Error: HTTP' + xhttp.status;
			}
		}
	}

	preservedForm = formElement.innerHTML;
	
	xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhttp.setRequestHeader('Content-length', params.length);
	xhttp.setRequestHeader('Connection', 'close');

	formElement.innerHTML = "<i>Wait...<\/i>";

	xhttp.send (params);

	return false;
}
