function CreateRequest()
{
	var Request = false;

	if (window.XMLHttpRequest)
	{
		Request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		Request = new ActiveXObject("Microsoft.XMLHTTP");
	
		if (!Request)
		{
			HRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
	}
 
	if (!Request)
	{
		alert("Невозможно создать XMLHttpRequest");
	}
	
	return Request;
}

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)
	{
		$("CONTAINER").innerHTML = Request.responseText;
	}
	
	//Посылаем запрос
	SendRequest("GET","tests/plain.txt","",Handler);
}

function PHPText()
{
	//Создаем обработчик
	var Handler = function(Request)
	{
		//Обнуляем контейнер
//		alert(Request.responseText);
		$("CONTAINER").innerHTML = Request.responseText;
	}
	
	//Посылаем запрос
	//SendRequest("GET","tests/test.php","",Handler);
	SendRequest("GET","tests/test.php?"+Math.random(),"",Handler);
}

function PHPText2(res_text)
{
	var Handler = function(Request)
	{
		$("CONTAINER").innerHTML = Request.responseText;
	}
	
	SendRequest("POST","tests/test.php?"+Math.random(),"text="+res_text,Handler);
}


function PHPWrite()
{
	//Создаем обработчик
	var Handler = function(Request)
	{
		//Обнуляем контейнер
		$("CONTAINER").innerHTML = Request.responseText;
	}
	
	//Посылаем запрос
	//SendRequest("GET","tests/test.php","",Handler);
	SendRequest("POST","tests/write.php"+Math.random(),"",Handler);
}

function vote_personal(i,v){
$("pervote_"+i).innerHTML='загрузка...';
var Handler=function(Request){document.getElementById("pervote_"+i).innerHTML=Request.responseText;}
SendRequest("POST","/ajax/vote_personal.php?"+Math.random(),"per="+i+"&vot="+v,Handler);
}


/*
function place_select(i){
  if(i==0 || !i){
  $("select_form").innerHTML='';
  }
  else
  {
    $("select_form").innerHTML='загрузка...';
    var Handler=function(Request)
    {
    $("select_form").innerHTML=Request.responseText;
    }
    SendRequest("POST","/ajax/select_form.php?"+Math.random(),"place="+i,Handler);
  }
}
*/

function place_select(i){
  if(i==0 || !i){
  $("select_manag").innerHTML='';
  }
  else
  {
	
    $("select_manag").innerHTML='загрузка...';
    var Handler=function(Request)
    {
    $("select_manag").innerHTML=Request.responseText;
    }
    SendRequest("POST","/ajax/select_manag.php?"+Math.random(),"place="+i,Handler);
  }
}

function manag_select(c,i){
  if(i==0 || !i){
  $("select_form").innerHTML='';
  }
  else
  {

    $("select_form").innerHTML='загрузка...';
  var Handler=function(Request)
  {
    $("select_form").innerHTML=Request.responseText;
  }
  SendRequest("POST","/ajax/select_form.php?"+Math.random(),"place="+c+"&manag="+i,Handler);
  }
}

/*
function home_place_select(i){
  if(i==0 || !i){
  $("select_form").innerHTML='';
  }
  else
  {

    $("select_form").innerHTML='загрузка...';
    var Handler=function(Request)
    {
    $("select_form").innerHTML=Request.responseText;
    }
    SendRequest("POST","/ajax/home_select_form.php?"+Math.random(),"place="+i,Handler);
  }
}
*/

function home_place_select(i){
  if(i==0 || !i){
  $("select_manag").innerHTML='';
  }
  else
  {

    $("select_manag").innerHTML='загрузка...';
    var Handler=function(Request)
    {
    $("select_manag").innerHTML=Request.responseText;
    }
    SendRequest("POST","/ajax/home_select_manag.php?"+Math.random(),"place="+i,Handler);
  }
}

function home_manag_select(c,i){
  if(i==0 || !i){
  $("select_form").innerHTML='';
  }
  else
  {

    $("select_form").innerHTML='загрузка...';
  var Handler=function(Request)
  {
    $("select_form").innerHTML=Request.responseText;
  }
  SendRequest("POST","/ajax/home_select_form.php?"+Math.random(),"place="+c+"&manag="+i,Handler);
  }
}


//Элиас для получения элемента по ID (короткий вариант)
function $(elementid)
{
	return document.getElementById(elementid);
}