//         Работа с XML
var req;          //Глобальный объект запроса

function XMLdoc(){
  var isIE = window.ActiveXObject? "yes": "";  //ie or mz
  this.doc;
 //добавить в созданный документ элемент
 this.add = function(block_mes, path, file_name)
 {
   root =  this.doc.firstChild
   m_id =  this.doc.createElement("path")
   m_txt = this.doc.createElement("mes")
   fl_name = this.doc.createElement("f_name")
   root.appendChild(m_txt)
   root.appendChild(m_id)
   root.appendChild(fl_name)
   m_txt.appendChild( this.doc.createTextNode(block_mes) )
   m_id.appendChild( this.doc.createTextNode(path) )
   fl_name.appendChild( this.doc.createTextNode(file_name) )
 }
  //----Создание нового документа----
  this.create = function()
  {
    try{    // MSIE?
      this.doc = new ActiveXObject('Msxml2.DOMDocument');
    }catch ( oError ) {
       try{	// Mozilla?
           this.doc = document.implementation.createDocument("","",null);
       }catch ( oError ) { return null }
    }
    root = this.doc.createElement("root")
    this.doc.appendChild(root)
    return this.doc;
  }
  //---------------------------------------
  this.show = function(pdoc)
  {
    var rez;
    if (isIE)   {
      rez = pdoc.xml;
    } else {
     // var parser  = new DOMParser;
      var serializer = new XMLSerializer();
      rez = serializer.serializeToString(pdoc);
    }
    return rez;
  }
  //---------------------------------------
  this.parse = function(xmltext)
  {
    try {  //IE
        var obj = new ActiveXObject("Msxml2.DOMDocument");
        obj.loadXML(xmltext);
        return obj;
    } catch (e) {
        try {  //Mozilla
            var obj = new DOMParser();
            return obj.parseFromString(xmltext, "text/xml");
        } catch (e) {return null;}
    }
  }
}//XMLdoc

//----Отправка документа на сервер----
function sendXML( oDoc )
{
  var serverUrl = 'inc/siteSearch/!server.php'
  
  if (window.XMLHttpRequest)     req = new XMLHttpRequest();                   //Mozilla
  else if (window.ActiveXObject) req = new ActiveXObject('Microsoft.XMLHTTP'); //IE
  
  req.onreadystatechange = processReqChange;
  req.open( "POST", serverUrl, true );
  req.send( oDoc );
  return req.responseXML;
}

//================================================
//Елементы, которые могут изменятся размещены ниже
//================================================

//------------------ монитор состояния отправки на сервер ---------------------
function processReqChange()
{
//  document.getElementById("check").value = req.readyState
  ab = window.setTimeout("req.abort();", 5000)
  if (req.readyState == 4){
      clearTimeout(ab);
      document.getElementById("check").firstChild.nodeValue = "Соединение: " + req.statusText
      // only if "OK"
      if (req.status == 200)  document.getElementById("searchResultBlock").innerHTML = req.responseText
      else                    alert("Не удалось получить данные:\n" + req.statusText)

  }
}

//----------------- Функция для суммирования измененных блочков для передачи данных на сервер ----------------
function makeSearch(Param1, Param2, Param3)
{
   var ob = new XMLdoc()
   ob.create()
   ob.add(Param1, Param2, Param3)
   response = sendXML(ob.doc)
//   res = ob.show(response)
//   alert(res.length)
}
