function CreateRequest()
{
	var Request = false;

	if (window.XMLHttpRequest)
	{
		//Gecko-совместимые браузеры, Safari, Konqueror
		Request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		//Internet explorer
		try
		{
			Request = new ActiveXObject("Microsoft.XMLHTTP");
		}    
		catch (CatchException)
		{
			Request = new ActiveXObject("Msxml2.XMLHTTP");
		}
	}
	if (!Request)
	{
		alert("Невозможно создать XMLHttpRequest");
	}
	return Request;
}
function SendRequest(r_path, r_args, r_handler_wait, r_handler_end,  r_handler_error)
{
	//Создаём запрос
	var Request = CreateRequest();
    
	//Проверяем существование запроса еще раз
	if (!Request)
	{
		return;
	}
  
	//Назначаем пользовательский обработчик
	Request.onreadystatechange = function()		
	{
		//Если обмен данными завершен
		if (Request.readyState == 4)
		{
			if (Request.status == 200)
			{
				//Передаем управление обработчику пользователя
				r_handler_end(Request);
			}
			else
			{
				//Оповещаем пользователя о произошедшей ошибке
				r_handler_error(Request);
			}
		}
		else
		{
			//Оповещаем пользователя о загрузке
			r_handler_wait(Request);	
		}
	}
    
   
	//Инициализируем соединение
	Request.open("POST", r_path, true);
    
	//Устанавливаем заголовок
	Request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	//Посылаем запрос
	Request.send(r_args);
}