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) {
  if (waiting == 1) return;
  
  waiting = 1;
  CreateRequest ();

  Request.onreadystatechange = function() {
    if (Request.readyState == 4) {
      waiting = 0;
      result_func (getResult());
    }
  }

  Request.open('POST','/cms/' + 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);
}

function getResult () {
  eval ("var req_values = " + Request.responseText);
  Request.abort ();
  return req_values;
}
