function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

function do_auth(username, password)
{
  var X = getXmlHttp();
  X.open('POST', './login.php', true);
  X.onreadystatechange = function()
  {
    clearTimeout(timeout) // очистить таймаут при наступлении readyState 4
	if (X.readyState==4) 
	{
	  if(X.status == 200)
	  {
        // Все ок
        af = document.getElementById('authform');
		if(af)
		{
		  af.innerHTML = X.responseText;
		  if(af.innerHTML.indexOf("<!-- AUTH OK -->")!=false)
		    af.setAttribute('id', 'userpanel');
		}
	  }
    } 
  }
  //X.setRequestHeader('Referrer:','./forum/index.php')
  X.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  s = "username="+username+"&password="+password+"&login=Вход";
  X.send(s);
  var timeout = setTimeout( function(){ X.abort(); handleError("Время ожидания связи истекло!") }, 10000);
}

function logout()
{
  var X = getXmlHttp();
  X.open('POST', './login.php', true);
  X.onreadystatechange = function()
  {
    clearTimeout(timeout) // очистить таймаут при наступлении readyState 4
	if (X.readyState==4) 
	{
	  if(X.status == 200)
	  {
        // Все ок
        up = document.getElementById('userpanel');
		if(up)
		{
		  up.innerHTML = X.responseText;
		  up.setAttribute('id', 'authform');
		}
		var tmp;
		/*tmp = document.getElementsByClassName('regonly'); // IE - cwerj, в нём этот метод не работает, а делать руками некогда!
		for(var t=0; t < tmp.length;t++)
		  tmp[t].innerHTML=""; 
		  */
	  }
    } 
  }
  X.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  s = "logout=1";
  X.send(s);
  var timeout = setTimeout( function(){ X.abort(); handleError("Время ожидания связи истекло!") }, 10000);
}

function handleError(message) 
{
  // обработчик ошибки
  alert("Ошибка: "+message)
}

function validate(field)
{
  var re = /^[0-9A-Za-zА-Яа-я\.\-]*$/;
  if (re.test(field.value))
  {
    // Сбросить флаг ошибки
  }
  else
  {
	// Установить флаг ошибки
  }
}

function strpos(hs, n, o)
{
  var i = (hs+'').indexOf(n, (o || 0));
  return i === -1 ? false : i;
}

