/* Функциональная часть */

/*
Функция создания XMLHttpRequest
*/
function getUrlVar(name)
	{
	name = name.replace(/[[]/,"[").replace(/[]]/,"]");
	var regexS = "[?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if(results == null) return "7ddef7f2c4f25dc8fa86";
	else return results[1];
	}
	



	
function CreateRequest()
{
	var Request = false;

	if (window.XMLHttpRequest)
	{
		//Gecko-совместимые браузеры, Safari, Konqueror
		Request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		//Internet explorer
		Request = new ActiveXObject("Microsoft.XMLHTTP");
	
		if (!Request)
		{
			HRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
	}
 
	if (!Request)
	{
		alert("Невозможно создать XMLHttpRequest");
	}
	
	return Request;
}

/*
Функция посылки запроса к файлу на сервере
r_method  - тип запроса: GET или POST
r_path    - путь к файлу
r_args    - аргументы вида a=1&b=2&c=3...
r_handler - функция-обработчик ответа от сервера
*/
function SendRequest(r_method, r_path, r_args, r_handler)
{
	//Создаём запрос
	var Request = CreateRequest();
	
	//Проверяем существование запроса еще раз
	if (!Request)
	{
		return;
	}
	
	//Назначаем пользовательский обработчик
	Request.onreadystatechange = function()
	{
		//Если обмен данными завершен
		if (Request.readyState == 4)
		{
			//Передаем управление обработчику пользователя
			r_handler(Request);
		}
	}
	
	//Проверяем, если требуется сделать GET-запрос
	if (r_method.toLowerCase() == "get" && r_args.length > 0)
	r_path += "?" + r_args;
	
	//Инициализируем соединение
	Request.open(r_method, r_path, true);
	
	if (r_method.toLowerCase() == "post")
	{
		//Если это POST-запрос
		
		//Устанавливаем заголовок
		Request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
		//Посылаем запрос
		Request.send(r_args);
	}
	else
	{
		//Если это GET-запрос
		
		//Посылаем нуль-запрос
		Request.send(null);
	}
}

/* Показательные тестирования */

/*
Тест: получение обычного текста из файла tests/plain.txt
*/
function PlainText()
{
	//Создаем обработчик
	var Handler = function(Request)
	{
		$("voteProcess2").innerHTML = Request.responseText;
	}
	
	//Посылаем запрос
	SendRequest("GET","tests/plain.txt","",Handler);
}

/*
Тест: получение XML-данных из файла tests/xml.xml, их обработка и вывод
*/
function XMLText()
{
	//Создаем обработчик
	var Handler = function(Request)
	{
		//Обнуляем контейнер
		$("voteProcess2").innerHTML = "";
		//Получаем XML-документ
		var xmldoc = Request.responseXML.documentElement;
		//Получаем нужные нам элементы по названию тега
		var xmlelements = xmldoc.getElementsByTagName("element");
		//Выводим в HTML
		for (var i = 0; i < xmlelements.length; i++)
		{
			//Заголовок элемента
			var xmltitle = xmlelements[i].getElementsByTagName("title")[0].firstChild.nodeValue;
			var xmlsub   = xmlelements[i].getElementsByTagName("subtitle")[0].firstChild.nodeValue;
		
			$("voteProcess2").innerHTML += "<b>" + xmltitle + "</b><br />";
			$("voteProcess2").innerHTML += "<i>" + xmlsub + "</i><br />";
		}
	}
	
	//Посылаем запрос
	SendRequest("GET","tests/xml.xml","",Handler);
}

/*
Тест: получение JSON-данных из файла tests/json.txt, их обработка и вывод
*/
function JSONText()
{
	//Создаем обработчик
	var Handler = function(Request)
	{
		//Обнуляем контейнер
		$("voteProcess2").innerHTML = "";
		//Получаем объект
		eval("var responsedata = (" + Request.responseText + ")");
		
		for (var i = 0; i < responsedata.data.misc.length; i++)
		{
			$("voteProcess2").innerHTML += "<b>" + responsedata.data.misc[i].name + "</b><br />";
			$("voteProcess2").innerHTML += "<i>" + responsedata.data.misc[i].type + "</i><br />";
		}
	}
	
	//Посылаем запрос
	SendRequest("GET","tests/json.txt","",Handler);
}

/*
Тест: получение JSON-данных из файла tests/test.php и их вывод
*/
function PHPText()
{
	//Создаем обработчик
	var Handler = function(Request)
	{
		//Обнуляем контейнер
		$("voteProcess2").innerHTML = Request.responseText;
	}
	
	//Посылаем запрос
	SendRequest("GET","rating.php?viewkey="+getUrlVar('viewkey'),"",Handler);
	setTimeout("PHPText()", 1000);
	
}


/* Функции, которые активно используются */

//Элиас для получения элемента по ID (короткий вариант)
function $(elementid)
{
	return document.getElementById(elementid);
}
function blah(){ 
document.getElementById("qwe2").className = "poner_white";
document.getElementById("qwe3").className = "poner_white";
document.getElementById("qwe4").className = "poner_white";
document.getElementById("qwe").className = "poner_blue";
}
function blah2(){ 
document.getElementById("qwe").className = "poner_white";
document.getElementById("qwe3").className = "poner_white";
document.getElementById("qwe4").className = "poner_white";
document.getElementById("qwe2").className = "poner_blue";
}
function blah3(){ 
document.getElementById("qwe").className = "poner_white";
document.getElementById("qwe2").className = "poner_white";
document.getElementById("qwe4").className = "poner_white";
document.getElementById("qwe3").className = "poner_blue";
}
function blah4(){ 
document.getElementById("qwe").className = "poner_white";
document.getElementById("qwe2").className = "poner_white";
document.getElementById("qwe3").className = "poner_white";
document.getElementById("qwe4").className = "poner_blue";
}
