var req;
var reqTimeout;

function processReqChange()
{
	if(req.readyState == 4)
	{
		clearTimeout(reqTimeout);

		// only if "OK"
		if(req.status == 200)
		{
			document.getElementById('content').innerHTML = req.responseText;
		} else {
			document.getElementById('content').innerHTML = "Не удалось получить данные. Сервер вернул ошибку №<span class='errorNumber'>" + req.status + "</span> и ответил:<br />«<span class='errorText'>" + req.statusText + "</span>»<br /><br />Если ошибка повторится ― пожалуйста, сообщите о ней администратору.";
		}
	}
}

function stat(n)
{
	switch(n)
	{
	case 0:
		return "не инициализирован";
		break;

	case 1:
		return "загрузка...";
		break;

	case 2:
		return "загружено";
		break;

	case 3:
		return "в процессе...";
		break;

	case 4:
		return "готово";
		break;

	default:
		return "неизвестное состояние";
	}
}

function requestDocument(url)
{
	if (url.host != window.location.host) return;
	var str = url.href.replace('http://','');
	var sURL = '.body';
	if(str.indexOf('/') == str.length - 1) sURL = 'index' + sURL;
				/* кроссбраузерный url.pathname */
	str = '#' + str.substr(url.host.length);
	req = null;
	document.getElementById('content').innerHTML = "<p align='center'>" + document.getElementById('imgLoading').innerHTML + "</p>";
	document.body.style.cursor = 'wait';
	if(window.XMLHttpRequest)
	{
		try
		{
			req = new XMLHttpRequest();
		}
		catch (e) {}
	} else if (window.ActiveXObject) {
		try
		{
			req = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try
			{
				req = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {}
		}
	}

	if(req)
	{
		req.onreadystatechange = processReqChange;
		req.open('POST', url.href + sURL, true);
		req.send(null);
		// if(str.length > 1)
		window.location.href = str;
		/* else
			location.hash = ''; */
		reqTimeout = setTimeout("req.abort();", 5000);
	} else {
		alert("Ваш браузер не поддерживает AJAX");
	}
	document.body.style.cursor = 'auto';
}
