
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 post_send(url, send_data, fun) {
   
    // создать объект для запроса к серверу
    var req = getXmlHttp();
   
    //var msg = document.getElementById('msg');
    //var text = document.getElementById('text');

    //if (msg.value == '') {
    //    return;
    //}

    // задать адрес подключения
    req.open('POST', url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(send_data);

    //alert('hi');

    // span рядом с кнопкой
    // в нем будем отображать ход выполнения
    //var statusElem = document.getElementById('vote_status');
    //msg.value = '';
    req.onreadystatechange = function() {
        // onreadystatechange активируется при получении ответа сервера
        if (req.readyState == 4) {
            //MMalert(req.responseXML);
            // alert(req.responseXML);
            //text.innerHTML += req.responseText;
            fun(req);
            //alert(text.innerHTML);
            // если запрос закончил выполняться
            //statusElem.innerHTML = req.statusText // показать с'') {
            return;
        }
    }
    //alert('waiting..');
    // объект запроса подготовлен: указан адрес и создана функция onreadystatechange
    // для обработки ответа сервера
    //req.send(null);  // отослать запрос    
    //alert('booo');
    
   // statusElem.innerHTML = 'Ожидаю ответа сервера...';
    
}


// --- Редактирование одной записи ---


function doStartEdit(div_prefix, meta_id) {
        SetDivDisplay(div_prefix +  meta_id, 'none');
        SetDivDisplay(div_prefix + 'edit_' + meta_id, 'block');
}


    function doEdit(div_prefix, path, id_field, value_field, meta_id) {
        var elem = document.getElementById(div_prefix + 'inp_' + meta_id);
        post_send(path,
                    id_field + '=' + meta_id + '&' + value_field + '=' + elem.value,
                  //'id=' + meta_id + '&metadata=' + elem.value,
                       function (req) {
                            SetDivDisplay(div_prefix + meta_id, 'block');
                            SetDivDisplay(div_prefix + 'edit_' + meta_id, 'none');
                            
                            var imp = document.getElementById(div_prefix + 'label_' + meta_id);
                            imp.innerHTML = req.responseText;
                       })
            
    }

