var request;

/**
 * Load XMLDoc function Здесь в качестве параметра url при вызове мы должны
 * указать backend-скрипт, который, собственно, и получит данные с сервера
 */

 function doLoad(url) {  
	 if (window.XMLHttpRequest) {
	 request = new XMLHttpRequest();  
	 request.onreadystatechange = processRequestChange;  
	 request.open("GET", url, true);  
	 request.send(null);  
	 } else 
		 if (window.ActiveXObject) {
	 request = new ActiveXObject("Microsoft.XMLHTTP"); 
	 if (! request){
		 request=new ActiveXObject("Msxml2.XMLHTTP");
		 }
	 if (request) {  
	 request.onreadystatechange = processRequestChange;  
	 request.open("GET", url, true);  
	 request.send();  
	 }  
	 }  
	 }  

/**
 * Event on request change Собственно, обработчик события onreadystatechange.
 * Здесь мы, в зависимости от состояния запроса, будем скрывать / показывать
 * слои "Загрузка данных", само поле данных и т.д.
 */
function processRequestChange() {
	abortRequest = window.setTimeout("request.abort();", 10000);
	// если выполнен
	if (request.readyState == 4) {
		clearTimeout(abortRequest);
		// если успешно
		if (request.status == 200) {
			document.getElementById("responseHTML").innerHTML = request.responseText;
		} else {
			alert("Не удалось получить данные:" + request.statusText);
		}
		document.getElementById("loading1").style.display = 'none';
	}
	// иначе, если идет загрузка или в процессе - показываем слой "Загружаются
	// данные"
	else if (request.readyState == 3 || request.readyState == 1) {
		document.getElementById("loading1").style.display = 'block';
	}
}