var xmlHttp = false;
try {
	xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
	try {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e2) {
		xmlHttp = false;
	}
}
if (!xmlHttp && typeof XMLHttpRequest!='undefined') {
	try {
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		xmlHttp = false;
	}
}

function makeAjaxCall(ajaxUrl) {
	if (xmlHttp) {
		xmlHttp.open("GET", ajaxUrl, true);
		xmlHttp.onreadystatechange = processResponse;
		xmlHttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		xmlHttp.send(null);
	}
}

function processResponse() {
	if (xmlHttp.readyState==4) {
		if (xmlHttp.status==200) {
			ShowResult(xmlHttp.responseXML);
		} else {
			ShowMessage("Error: status code is "+xmlHttp.status);
		}
	}
}

function ShowBR(el) {
	el.appendChild(document.createElement("br"));
}

function ShowText(el, text) {
	el.appendChild(document.createTextNode(text));
}

function ShowMessage(msg) {
	var divEl = document.getElementById("poll");
	while (divEl.hasChildNodes()) divEl.removeChild(divEl.lastChild);
	ShowBR(divEl);
	ShowText(divEl, msg);
	ShowBR(divEl);
	ShowBR(divEl);
}

function ShowMsgLoading() {
	var btnEl = document.getElementById("vtbtn");
	while (btnEl.hasChildNodes()) btnEl.removeChild(btnEl.lastChild);
	var img = document.createElement("img");
	img.setAttribute("src", "/files/ajax-loader.gif");
	img.setAttribute("width", "16");
	img.setAttribute("height", "16");
	img.setAttribute("alt", "loading");
	btnEl.appendChild(img);
}

function ShowResult(xml) {
	var divEl = document.getElementById("poll");
	while (divEl.hasChildNodes()) divEl.removeChild(divEl.lastChild);

	ShowText(divEl, xml.documentElement.getElementsByTagName("question")[0].firstChild.data);

	ShowBR(divEl);
	ShowBR(divEl);

	var alreadyVoted = xml.documentElement.getElementsByTagName("alreadyVoted")[0].firstChild.data;
	if(alreadyVoted == "y") {
		var fontEl = document.createElement("font");
		fontEl.setAttribute("color", "#cc3333");
		ShowText(fontEl, "Вы уже голосовали!");
		divEl.appendChild(fontEl);
		ShowBR(divEl);
		ShowBR(divEl);
	}

	var texts = xml.documentElement.getElementsByTagName("text");
	var percs = xml.documentElement.getElementsByTagName("percent");
	var numbs = xml.documentElement.getElementsByTagName("number");
	for (var i=0; i<texts.length;i++) {
		var choice = texts[i].firstChild.data;
		var percent = percs[i].firstChild.data;
		var number = numbs[i].firstChild.data;
		ShowText(divEl, choice+" - "+number+" ("+percent+"%)");
		ShowBR(divEl);
		if(percent != 0) {
			var perc_corr = percent * 1.28;
			var imgEl = document.createElement("img");
			imgEl.setAttribute("src", "/files/blank.gif");
			imgEl.setAttribute("width", perc_corr);
			imgEl.setAttribute("height", "5");
			imgEl.setAttribute("alt", choice);
			divEl.appendChild(imgEl);
			ShowBR(divEl);
		} else {
			ShowText(divEl, "—");
			ShowBR(divEl);
		}
	}
	ShowBR(divEl);

	var totalVoted = xml.documentElement.getElementsByTagName("totalVoted")[0].firstChild.data;
	ShowText(divEl, "Всего голосов: " + totalVoted);
}

function vote() {
	var divEl = document.getElementById("poll");
	var index = 0;
	var selIndex = -1;
	var childs = divEl.childNodes;
	for (var i=0; i<childs.length; i++) {
		if (childs[i].nodeType==1) {
			if (childs[i].getAttribute("name")=="rdChoice") {
				if (childs[i].checked) {
					selIndex = index;
				}
				index++;
			}
		}
	}
	if (selIndex==-1) {
		alert("Сначала выберите вариант ответа");
		return;
	}
	ShowMsgLoading();
	makeAjaxCall("/poll.php?choice="+selIndex);
}

function result() {
	ShowMsgLoading();
	makeAjaxCall("/poll.php");
}
