// Ajax

var Request = null;
var waiting = 0;

function CreateRequest()
{
//  if (Request) return Request;

  if (window.XMLHttpRequest) {
    Request = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      Request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (CatchException) {
      Request = new ActiveXObject("Msxml2.XMLHTTP");
    }
  }

  if (!Request) {
    alert("Невозможно создать XMLHttpRequest");
  }
} 


function sendRequest (path,param,result_func,res_type) {
  if (waiting == 1) return;
  
  waiting = 1;
  CreateRequest ();

  Request.onreadystatechange = function() {
    if (Request.readyState == 4) {
      waiting = 0;
      if(res_type && (res_type == 'text')){
        result_func (Request.responseText);
      } else {
        result_func (Request.responseXML);
      }
    }
  }
  if(!/^(http|file|ftp):\/\//.test(path)){path = '/pages/' + path;}
  Request.open('POST',path,true);

  var param_str = 'empty_param_for_request=junk&';
  for (nm in param) {
    param_str += nm + "=" + encodeURIComponent(param[nm]) + "&";
  }

  Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  Request.setRequestHeader("Content-Length", param_str.length);
  Request.send(param_str);
}