//функция возвращает экземпляр класса XMLHttpRequest
function getHTTPRequestObject() {
	var xmlHttpRequest;
	if (typeof ActiveXObject != 'undefined') {
		xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
	} else if (typeof XMLHttpRequest != 'undefined') {
		xmlHttpRequest = new XMLHttpRequest();
	} else {
		xmlHttpRequest = false;
	}
	return xmlHttpRequest;
}

var httpRequester = getHTTPRequestObject(); //Рабочий экземпляр класса XMLHttpRequest

//выполняет асинхронный GET
function makeAJAXCall(ajaxUrl, DivId) {
	CurDivId = DivId;
	if (httpRequester) {
		httpRequester.open("GET", ajaxUrl, true);
		httpRequester.onreadystatechange = processResponse;
		httpRequester.send(null);
	}
}

var READY_STATE_COMPLETE=4;

//CallBack-функция. Выводит полученные асинхронно данные или сообщение об ошибке
function processResponse(DivId) {
	if (httpRequester.readyState == READY_STATE_COMPLETE) {
		if (httpRequester.status==200) {
			printToPage (httpRequester.responseText, CurDivId);
		} else {
			var message = "Problem retrieving data. requestStatus="+httpRequester.status+". Message="+httpRequester.statusText;
			printToPage ("<font color=\"red\">"+message+"</font>", CurDivId);
		}
   } else {
   	printToPage ('<strong>Loading...</strong>', CurDivId);
   }
}

//Выводим переданный HTML в элемент с id=DivId
function printToPage(value, DivId) {
   resultDiv = document.getElementById(DivId);
   if(resultDiv != null) resultDiv.innerHTML = value;
}

//выводим статус текущей
function getNewData(DivId, sUrl, Data) {
	var checkElement = document.getElementById(DivId);
//	var checkImage = document.getElementById(DivId+'_img');
	makeAJAXCall(sUrl+"?varriable="+Data,DivId);
}
