var HTML_div, LOADING_div, end;

function AjaxQuery(url,params,div,ldiv){
	HTML_div = div;
	LOADING_div = ldiv;
	url = url + '?';
	params = params.split(',');
	end = false;
	for(i = 0; i< params.length; i++){
		if(i % 2 == 0) url = url + params[i] + '=';
		else url = url + params[i] + '&';
	}
	if(window.XMLHttpRequest){
		request = new XMLHttpRequest();
		request.onreadystatechange = processAjaxChange;
		request.open("GET",url,true);
		request.send(null);
	} else if(window.ActiveXObject){
		request = new ActiveXObject("Microsoft.XMLHTTP");
		if(request){
			request.onreadystatechange = processAjaxChange;
			request.open("GET",url,true);
			request.send(null);
		}
	}
}

   
/** 
# * Event on request change 
# * Собственно, обработчик события onreadystatechange. 
# * Здесь мы, в зависимости от состояния запроса, 
# * будем скрывать / показывать слои "Загрузка данных", 
# * само поле данных и т.д. 
# */  

function processAjaxChange() {  
	abortRequest = window.setTimeout("request.abort();", 10000);  
	// если выполнен  
	if (request.readyState == 4) {  
		clearTimeout(abortRequest);  
		// если успешно  
		if (request.status == 200) {  
		document.getElementById(HTML_div).innerHTML = request.responseText;
		} else {  
		document.getElementById(HTML_div).innerHTML = request.responseText;
		}  
		document.getElementById(LOADING_div).style.display = 'none';  
		end = true;
	}  
	// иначе, если идет загрузка или в процессе - показываем слой "Загружаются данные"  
	else if (request.readyState == 3 || request.readyState == 1) {  
		document.getElementById(LOADING_div).style.display = 'inline';  
	}  
}  
