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.onreadystatechange = processRequestChange;
			request.open("GET", url, true);
			request.send();
		}
	}
}

/**
* Get request state text function
*/
function getRequestStateText(code) {
	switch (code) {
		case 0: return "Uninitialized."; break;
		case 1: return "Loading..."; break;
		case 2: return "Loaded."; break;
		case 3: return "Interactive..."; break;
		case 4: return "Complete."; break;
	}
}

/**
* Event on request change
* Собственно, обработчик события onreadystatechange.
* Здесь мы, в зависимости от состояния запроса,
* будем скрывать / показывать слои "Загрузка данных",
* само поле данных и т.д.
*/
function processRequestChange() {
	document.getElementById("resultdiv").style.display = 'none';
	document.getElementById("state").value = getRequestStateText(request.readyState);
	abortRequest = window.setTimeout("request.abort();", 10000);
	// если выполнен
	if (request.readyState == 4) {
		clearTimeout(abortRequest);
		document.getElementById("statuscode").value = request.status;
		document.getElementById("statustext").value = request.statusText;
	// если успешно
		if (request.status == 200) {
			document.getElementById("resultdiv").style.display = 'block';
			document.getElementById("responseHTML").innerHTML = request.responseText;
		} else {
			alert("Не удалось получить данные - " + request.statusText);
		}
		document.getElementById("loading").style.display = 'none';
	}
	// иначе, если идет загрузка или в процессе - показываем слой "Загружаются данные"
	else if (request.readyState == 3 || request.readyState == 1) {
		document.getElementById("loading").style.display = 'block';
	}
}

function getQueryString()
{
	var i,inputs;
	var qs = "";
	var first=true;
	inputs=document.getElementsByTagName('input');
    for(i=0;i<inputs.length;i++) //inputs.length
	{
		if((inputs[i].name != "") && inputs[i].checked) 
		{
			if(first)
			{
				qs= "?"+inputs[i].id.charAt(0)+i+"="+inputs[i].name;
				first=false;
			}
			else 
			{
				qs+= "&"+inputs[i].id.charAt(0)+i+"="+inputs[i].name;
			} 
		}	
	}
//	alert("query length = "+qs.length); //must be < 2k
	return qs;
}

