var requester = null;

function $(id)
{
	return document.getElementById(id);
}

function startajax()
{
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();
	}
	try
	{
		requester = new XMLHttpRequest();
	}
	catch(err)
	{
		try
		{
			requester = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(error)
		{
			requester = null;
		}
	}

	requester.onreadystatechange = stateChangeHandler;
}

function stateChangeHandler()
{
	if (requester.readyState == 4)
	{
		if (requester.status == 200)
		{
			//  Process 
			processData();
		}
		else if (requester.status != 0)
		{
			alert("There was an error while retrieving the URL: " + requester.statusText);
		}
	}
}

function processData()
{
	var results, amountanswers, amountvotes, count, tmp, today, expire, pollid, answerid; // Set vars

	// Check if the request has been completed
	if (requester != null && requester.readyState == 4 && requester.status == 200)
	{
		amountanswers = requester.responseXML.getElementsByTagName("amountanswers")[0].firstChild.nodeValue; // Set the answers amount

		amountvotes = requester.responseXML.getElementsByTagName("amountvotes")[0].firstChild.nodeValue; // Set the votes amount

		pollid = requester.responseXML.getElementsByTagName("pollid")[0].firstChild.nodeValue; // Set pollid

		answerid = requester.responseXML.getElementsByTagName("answerid")[0].firstChild.nodeValue; // Set given answerid

		results = requester.responseXML.getElementsByTagName("answer"); // Set all results

		if (results.length > 0) // If there are results
		{
			for (i=0; i < results.length ; i++ ) // Loop 'em
			{
				count = results[i].getElementsByTagName("count")[0].firstChild.nodeValue; // Amount votes per answer

				id = results[i].getElementsByTagName("id")[0].firstChild.nodeValue; // Answerid

				$('li_' + id).childNodes[1].nodeValue = '-' + $('li_' + id).childNodes[1].nodeValue;

				tmpchild = document.createElement('br');
				tmptext = document.createTextNode('(' + count + ' stemmen, ' + Math.round((count/amountvotes)*100) + '%)');

				$('li_' + id).appendChild(tmpchild);
				$('li_' + id).appendChild(tmptext);

				$('li_' + id).removeChild($('li_' + id).childNodes[0]);
			}

			$('vote_box').parentNode.removeChild($('vote_box'));
			if ($('tmpmsg')) $('tmpmsg').parentNode.removeChild($('tmpmsg'));
		}

		tmp = [];

		tmp[pollid] = answerid;

		today = new Date();
		expire = new Date();

		expire.setTime(today.getTime() + 60*60*24*365);

		document.cookie = "ing_poll="+escape(tmp)+";expires="+expire.toGMTString();
	}
}

function start()
{
	var answer, input, i, tempmsg, tmp;

	if ($('poll') && $('vote'))
	{
		tmp = document.createElement('div');

		tmp.setAttribute('id', 'tmpmsg');

		tempmsg = document.createTextNode(tmpmsg);

		tmp.appendChild(tempmsg);

		$('poll').appendChild(tmp);

		$('vote').parentNode.removeChild($('vote'));

		input = $('poll').getElementsByTagName('input');

		for (i = 0; i < input.length; i++)
		{
			if (input[i].className == 'poll' && input[i].checked == true)
			{
				answer = input[i].value;
			}
		}

		startajax();

		requester.open("GET", "/poll/processvote.php?answerid=" + answer);

		requester.send(null);
	}
}
