// Функция загрузки лидеров и аутсайдеров
function violeus() {
	$('#helpthem').html('');
	$.post("violeus.xml", {},
		function(data){
			if (!$.browser.msie) {
				$('#violetta').html((new XMLSerializer()).serializeToString(data.getElementsByTagName('table')[0]));
			} else {
				// Для мегаебанутого MS Internet Explorer, который не знает про XMLSerializer, придётся делать дополнительный запрос
				// Можно ещё парсить таблицу втупую по нодам — ну нахуй
				$('#voletta').load('violeus.xml table.allstars');
			}
			if ($('user', data).length == 0) {
				$('#helpthemhead').hide();
			} else {
				$('#helpthemhead').show();
				$($("user", data)).each(
					function(i){
						$('#helpthem').append("<a class=\"ljuser\" href=\"http:\/\/" + 
							  $(this).attr("ljname") + ".livejournal.com\" title=\"" + 
							  $(this).attr("name") + "\" id=\"" + $(this).attr('id') + 
							  "\">" + $(this).attr("ljname") + "</a>\n");
				});
			} // if-else user.length == 0
	}, "xml");
}

// Поскольку в jQuery серьёзный AJAX через раз лажает, пишем стандартный обработчик
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!="undefined") {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

// Ну а ниже собственно то, что выполняется после окончания загрузки HTML и Javascript

window.onload = function(){

//	Инициализируем начальное состояние страницы и её элементов:
	$("#spinner").hide()
	violeus(); // Вывели лидеров и аутсайдеров

//	Назначаем обработчики событий:

	$("#hideinfo").click(function(){$("#infoabout").toggle()}); // Скрыть/показать доп. информацию
	$("form#voter").submit(function(event) {event.preventDefault()}); // Запретить штатный Submit

	$("div.paswqwest span.link").click(function(){
		pswinfo = "Мы не знаем и знать не хотим, что будет с вашим паролем. Он уйдёт в зашифрованном виде прямо в Livejournal, а тот скажет, можно ли вам голосовать. Это надёжно. Кто боится кражи паролей, лучше побеспокойтесь, чтобы их было ради чего воровать.";
		$("#pozor").text().length < 200 ? $("#pozor").text(pswinfo) : $("#pozor").text("");
	})

//	Нажатие кнопки голосования
	$("#votebutton").click(
		function(event){
			frm = document.forms.voter;
			var j = '';
			for (i = 0; i <= frm.length - 1; i++) {j += frm.elements[i].name + '=' + encodeURIComponent(frm.elements[i].value.replace('-', '_')) + "&"};
			$("#spinner").show();
			$("#pozor").html('');
			$("#votebutton").hide();

			// Отправка данных на сервак и обработка ответа от него
			var xmlhttp = getXmlHttp();
			xmlhttp.open('POST', 'go.py', true);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4) {
					if(xmlhttp.status == 200) {
						$("#pozor").html(xmlhttp.responseText);
						$("#spinner").hide();
						$("#votebutton").show();
						violeus();
					}
					else {
						$("#pozor").html("Отказ сервера: <b>" + xmlhttp.status + " " + xmlhttp.statusText + "</b>, скорее всего — проблемы со связью, попробуйте ещё раз, если так и не выйдет — сообщите пацанам.");
						$("#spinner").hide();
						$("#votebutton").show();
					} // if 200
				} // if 4
			};
			xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlhttp.send(j);
		event.preventDefault(); // А сам по себе POST с релоадом страницы нам в хуй не впился
	})
	

}// onload()