<!-- Beginning of JavaScript -

var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
  trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё

// Сохраняем стандартную функцию escape()
var escapeOrig = window.escape;

// Переопределяем функцию escape()
window.escape = function(str)
{
  var ret = [];
  // Составляем массив кодов символов, попутно переводим кириллицу
  for (var i = 0; i < str.length; i++)
  {
    var n = str.charCodeAt(i);
    if (typeof trans[n] != 'undefined')
      n = trans[n];
    if (n <= 0xFF)
      ret.push(n);
  }
  return escapeOrig(String.fromCharCode.apply(null, ret));
}

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()
{
   //3	document.getElementById("resultdiv").style.display = 'none';
	//3 document.getElementById("state").value = getRequestStateText(request.readyState);
	abortRequest = window.setTimeout("request.abort();", 10000);
	// если выполнен
	if (request.readyState == 4)
    {
    	clearTimeout(abortRequest);
	   //3 document.getElementById("statuscode").value = request.status;
	   //3 document.getElementById("statustext").value = request.statusText;
	    // если успешно
	    if (request.status == 200)
        {
        	if (request.responseText=='ERR') alert("Товарищ, заполните все обязательные поля.");
            else
            	if (request.responseText=='ERR1') alert("Данный опрос устарел");
                else
                 	if (request.responseText=='ERR2') alert("Вы ввели неправильную почту, это глупо.");
                	else
                    	alert("Спасибо за Ваш интерес. Вы получите ответ до конца следующего рабочего дня.\n");
            //3document.getElementById("resultdiv").style.display = 'block';
			//3document.getElementById("responseHTML").innerHTML = request.responseText;
	    } else
        {
	    	alert("Пожалуйста, повторите отправку ещё раз.:n" + request.statusText);
	    }
	    //3document.getElementById("loading").style.display = 'none';
	}
	// иначе, если идет загрузка или в процессе - показываем слой "Загружаются данные"
	else
    	if (request.readyState == 3 || request.readyState == 1)
        {
    		//3document.getElementById("loading").style.display = 'block';
	    }
}
// -->