﻿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");
			 Request = new ActiveXObject("Microsoft.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);
    }
	
	Request.onreadystatechange = function()
{
    //Если обмен данными завершен
    if (Request.readyState == 4)
    {
        if (Request.status == 200)
        {
            //Передаем управление обработчику пользователя
            r_handler(Request);
			document.getElementById("loading").innerHTML = "";
        }
        else
        {
            document.getElementById("pag_body").innerHTML = "<font color='red'>Ошибка запроса</a>";
        }
    }
    else
    {
		document.getElementById("pag_body").innerHTML = "<img src='images/ajax.gif'>";
    }
 
}


}
function getCmd(file,data,container)
{
    var Handler = function(Request)
    {
        document.getElementById("pag_body").innerHTML = Request.responseText;
    }
    SendRequest("POST",file,"data="+data,Handler);
} 
function getStr(data,val,container)
{
    var Handler = function(Request)
    {
        document.getElementById(container).innerHTML = Request.responseText;
    }
    SendRequest("POST","functions.php","get="+data+"&id="+val,Handler);
} 

