var xmlHttp = createXmlHttpRequestObject();
var showErrors = true;
var cache = new Array();

function createXmlHttpRequestObject()
{
	var xmlHttp;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
										"MSXML2.XMLHTTP.5.0",
										"MSXML2.XMLHTTP.4.0",
										"MSXML2.XMLHTTP.3.0",
										"MSXML2.XMLHTTP",
										"Microsoft.XMLHTTP");
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {}
		}
	}
	if (!xmlHttp)
		displayError("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp;
}

function display(message, place)
{
	myDiv = document.getElementById(place);
	myDiv.innerHTML = message;
}

function displayError($message)
{
	if (showErrors)
	{
		showErrors = false;
		alert("Error encountered: \n" + $message);
		setTimeout("validate();", 10000);
	}
}

function validate(radioId)
{
	var serverAddress = document.getElementById("url").innerHTML;

	if (xmlHttp)
	{
		try
		{
			if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0))
			{
				var radioLength = radioId.length;
				for(var i = 0; i < radioLength; i++)
				{
					if(radioId[i].checked)
					{
						var postData = "checked="+radioId[i].value;

						xmlHttp.open("POST", serverAddress+"?validationType=Ajax", true);
						xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
						xmlHttp.onreadystatechange = handleRequestStateChange;
						xmlHttp.send(postData);

						document.getElementById("vote_pool").innerHTML='';
					}
				}
			}
		}
		catch (e)
		{
			displayError(e.toString());
		}
	}
}

function view_poll()
{
	var serverAddress = document.getElementById("url").innerHTML;

	if (xmlHttp)
	{
		try
		{
			if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0))
			{
				var postData="checked=";

				xmlHttp.open("POST", serverAddress+"?validationType=Ajax", true);
				xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				xmlHttp.onreadystatechange = handleRequestStateChange;
				xmlHttp.send(postData);

				document.getElementById("vote_pool").innerHTML='';
			}
		}
		catch (e)
		{
			displayError(e.toString());
		}
	}
}

function handleRequestStateChange()
{
	if (xmlHttp.readyState == 4)
	{
		if (xmlHttp.status == 200)
		{
			try
			{
				readResponse();
			}
			catch(e)
			{
				displayError(e.toString());
			}
		}
		else
		{
			displayError(xmlHttp.statusText);
		}
	}
}

function readResponse()
{
	var response = xmlHttp.responseText;
	if (response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0 || response.length == 0)
	throw(response.length == 0 ? "Server error." : response);
	display(response, "response");
}