function ajax_class(resp_func){
    var AJAX_OBJECT = new Array("Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
    var AJAX_METHOD = null;
    var AJAX_SCRIPT = null;
    var AJAX_HANDLE = false;

    this.ajax = function(method,script){
        if(window.ActiveXObject){
            for(var i = 0; i < AJAX_OBJECT.length; i++){
                try {
                    AJAX_HANDLE = new ActiveXObject( AJAX_OBJECT[i] );
                } catch(e) {}
            }
        }
        else if(window.XMLHttpRequest){AJAX_HANDLE = new XMLHttpRequest();}

        if(AJAX_HANDLE){
            this.hash = {
                AJAX_METHOD : method,
                AJAX_SCRIPT : script,
                AJAX_HANDLE : AJAX_HANDLE
            };
        } else {
            alert("Ваш браузер не поддерживает технологию Ajax");
        }
        return this.hash;
    }
    AJAX_HANDLE = this.ajax;

    this.callback = function(data){
        if(AJAX_HANDLE){
            if(this.hash.AJAX_METHOD=="POST"){
                with(this.hash){
                    AJAX_HANDLE.open("POST", AJAX_SCRIPT, true);
                    AJAX_HANDLE.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                    AJAX_HANDLE.onreadystatechange = this.ajax_informer;
                    AJAX_HANDLE.send(data);
                }
            }
            
            if(this.hash.AJAX_METHOD == "GET"){
                with(this.hash) {
                    AJAX_HANDLE.open("GET", AJAX_SCRIPT, true);
                    AJAX_HANDLE.onreadystatechange = this.ajax_informer;
                    AJAX_HANDLE.send(null);
                }
            }
        }
    }

    this.ajax_informer = function(){
        if (AJAX_HANDLE.readyState==4)
        if (AJAX_HANDLE.status==200){
				var response = AJAX_HANDLE.responseText;
				my_func=resp_func+'(response)';
				eval(my_func);
			}
        else if (AJAX_HANDLE.status == 404)alert("Запрашиваемая страница не найдена.");
        else alert("Ошибка: " + AJAX_HANDLE.status);
    }
}

