	function getEl(el){
		if(document.getElementById){
			return document.getElementById(el);
		} else {
			return document.all[el];
		}
	}

    function regObject(){
        // Try to use built-in loaders.
        var req = null;
        if (window.XMLHttpRequest){
            try { req=new XMLHttpRequest() } catch(e) {}
        } else if (window.ActiveXObject) {
            try { req=new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
            if (!req) try { req=new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {}
        }

        return req;
    }

    function ldr(query,name,postdata){
    	var lod=regObject();
    	if(name==null) var infoPanel='info';
    	else infoPanel=name;

        lod.onreadystatechange = function(){
        	if(lod.readyState==4){
        		if(lod.status==200){
	        		showInfo('Готово<br><img src="img/ajax_active.gif">',false,infoPanel);
        		
                    var responseText=lod.responseText;
                    try {
                            // Call associated dataReady().
                            eval(responseText);
                        } catch (e) {
                            showInfo("JavaScript code generated by backend is invalid!\n"+responseText,null,infoPanel);
                        }
	        	} else {
	        		showInfo('Info not loaded: '+lod.statusText,null,infoPanel);
	        	}
        	} else {
        		switch (lod.readyState){
        			case 0:
        				showInfo('Идет загрузка...<br><img src="img/ajax_active.gif">',null,infoPanel);
        				break;
        			case 1:
        				showInfo('Идет загрузка...<br><img src="img/ajax_active.gif">',null,infoPanel);
        				break;
        			case 2:
        				showInfo('Информация загружена. Идет обработка.<br><img src="img/ajax_active.gif">',null,infoPanel);
        				break;
        			case 3:
        				showInfo('Обработка закончена.<br><img src="img/ajax_active.gif">',null,infoPanel);
        				break;
        		}
        	}
        }

        if(postdata==null) lod.open("GET", query, true);
        else lod.open("POST", query, true);
        
	    lod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	    
	    if(postdata==null) lod.send ('');
	    else lod.send(postdata);
    }

    function showInfo(text,show,intId){
    	var infoPanel=getEl(intId);

    	// Определяем положение панели
    	var wLeft=(screen.availWidth/2)-100;
        var wTop=(screen.availHeight/2)-100;

    	infoPanel.innerHTML=text;
    	infoPanel.style.visibility=((show==true || show==null)?'visible':'hidden');

    	infoPanel.style.top=wTop;
    	infoPanel.style.left=wLeft;
    }

    /*
    HowTo Use
    <a href='#' onclick='ldr("ajax.php")'>Тест</a>
	<div name='info' id='info' style='border: 1px #000 solid; background-color: #fff; color: #000; font-size: 11px; font-family: Arial; width: 200px; height: 50px; visibility: hidden; vertical-align: center; text-align: center; top: 384; left: 612; padding-top: 8%; position: relative;'>InfoText</div>

	<div name='lblText' id='lblText' style='width: 300; height: 200; border: 1px #000 solid; overflow: scroll; background-color: #999999; color: #ffffff; visibility: hidden;'>responseText</div>
	*/
