var xmlHttp = createXMLHttpRequestObject();
// переменная для хранения адресса удаленного сервера
    //var serverAddress = "validate.php";
// если установлено значение true, выводиться подробное сообщение об ошибках
    var showErrors = false;
// иницилизировать кэш запросов
    var cache = new Array();
    
  function  obrobka(xmlDoc)
{  
    result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
    response(result);
      
}
function  obrobka2(xmlDoc)
{  
    result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
    formname = xmlDoc.getElementsByTagName("formname")[0].firstChild.data;
    //alert(formname)
    if (result==1){
        location.replace("http://biznesbroker.ru/business-sell-yourself/order_ok.html");
         document.formname.reset();
        
    }    
    //response(result);
      
}
  
    
    
// создает экземпляр объекта  XMLHttpRequest
    function  createXMLHttpRequestObject()
    {
        //пенеменная для хранения ссылки на объект XMLHttpRequest
        var  xmlHttp;
                // эта часть кода должна работать во всех браузерах, кроме IE6
        try
        {
            //попытка создать объест     XMLHttpRequest
            xmlHttp = new  XMLHttpRequest();
        }
        catch(e)
        {
            // предполагаеться что используеться IE6 или старые версии
            var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                            "MSXML2.XMLHTTP.5.0",
                                            "MSXML2.XMLHTTP.4.0",
                                            "MSXML2.XMLHTTP.3.0",
                                            "MSXML2.XMLHTTP",
                                            "Microsoft.XMLHTTP");
            // попробывать все возможные prog id
            // пока какая-либо попытка не увенчаеться успехом
            for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
            {
                try
                {
                    // попытка создать объект XMLHttpRequest

                    xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
                }
                catch (e) {} // игнорировать возможные ошибки
            }
        }
            // вернуть созданый объект или вывести сообщение об ошибке
            if (!xmlHttp)
                alert("ошибка создания объекта XMLHttpRequest.");
            else
                return   xmlHttp;

    }

    // эта функция выводит сообщение об ошибке
    function displayError($message)
    {
        //игнорировать ошибку если в show errors находиться false
        if (showErrors)
        {
            // отключить вывод сообщений об ошибке
            showErrors = false;
            // вывод сообщений об ошибке
            alert("Обнаружена ошибка: \n" + $message);
            // повторнаяпроверка не ранее чем через 10 с
            setTimeout("validate();", 10000);
        }
    }
    // эта ф-ция выпоняет проверку любого поля формы
 function validate(inputValue, serverAddress, funkc)
    {  
        // проодолжить если в xmlHttp не пустая ссылка
        if (xmlHttp)
        {
            // если был принят не пустой аргумент помещаем его в кеш в виде
            // строки запроса, который будет послан серверу для проверки
            if (inputValue)
            {
                // преобразовать значение в форму, которая может безопасно быть включена
                // в строку запроса http
                //inputValue = encodeURIComponent(inputValue);
                //fieldID = encodeURIComponent(fieldID);
                        //alert(inputValue)
                // добавить значение в очередь
                cache.push(inputValue);
            }
            //  попытаться установить соединени е с сервером
            try
            {
                // продолжать если объект XMLHttpRequest не занят
                // и кеш не пуст

                if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
                    && cache.length>0)
                {
                    // извлечь новый набор параметров из кеша
                    var cacheEntry = cache.shift();
                    //alert(serverAddress);
                    // послать запрос серверу для проверки извлеченных даных
                    xmlHttp.open("POST",serverAddress, true);
                    xmlHttp.setRequestHeader("Content-Type",
                                            "application/x-www-form-urlencoded");
                    window.Funkc= funkc;
                    xmlHttp.onreadystatechange = handleRequestStateChange;

                    //alert(cacheEntry);
                    xmlHttp.send(cacheEntry);

                }
            }
            catch (e)
            {
                // вывести сообщение об ошибке при неудачной попытке
                // установить соединение с сервером
                //alert('no soedinenie')
                displayError(e.toString());
            }
        }
    }
     // эта функция обслуживает ответы http
   function handleRequestStateChange()
{
  // when readyState is 4, we read the server response
  if (xmlHttp.readyState == 4)
      {
    // continue only if HTTP status is "OK"
    if (xmlHttp.status == 200)
    {
      try
      {
        // read the response from the server
        readResponse();
      }
      catch(e)

      {
        // display error message
        displayError(e.toString());
      }
    }
    else
    {
      // display error message
      displayError(xmlHttp.statusText);
    }
  }
}

    // читает  ответ сервер
    function  readResponse()
    {

        // получить ответ от сервера
        var response = xmlHttp.responseText;
           
        // ошибка сервера?
        if (response.indexOf("ERRNO")>=0
                || response.indexOf("error:")>= 0
                || response.length == 0)
            throw(response.length == 0 ? "Server error." : response);
        // получить ответ в формате XML


        responseXml = xmlHttp.responseXML

        // получить ссылку на корневой элемент
        xmlDoc = responseXml.documentElement;
           
        //if (!xmlDoc) {alert('No xmlDoc'); exit;}

        eval(window.Funkc+'(xmlDoc)')
        // вызвать validate еще раз на случай если кеш не пуст
        setTimeout("validate();", 500);
    }



function ajax_post(url, vars, callback) {
  var xmlHttp = null; // Defines that xmlHttp is a new variable.
  // Try to get the right object for different browser
  try { // Firefox, Opera 8.0+, Safari, IE7+
    xmlHttp = new XMLHttpRequest(); // xmlHttp is now a XMLHttpRequest.
  }
  catch(e) { // Internet Explorer
    try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e) {
      try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
      catch (e) {
        try {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.6.0");}
        catch (e) {alert("Ваш браузер не поддерживает XMLHttpRequest объект."); return};
	  }
    }
  }

  xmlHttp.onreadystatechange = function() {
  if (xmlHttp.readyState == 4)
    try { // In some instances, status cannot be retrieved and will produce 
      // an error (e.g. Port is not responsive)
      if (xmlHttp.status == 200) {
		    callback(xmlHttp.responseText);
      }
    }
	  catch (e) {
      alert("XMLHTTP error: " + e.description);
    }
  }
  xmlHttp.open("POST", url, true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.send(vars);

}

function mail_send(button) {
 var vars = "";

 var e = document.getElementById("SMFContainer");
 var e1 = e.getElementsByTagName("input");
 for (var i = 0; i < e1.length; i++) {
   var name_attr = e1[i].getAttribute("name");
   var value_attr = e1[i].value;
   if (name_attr == "email") {
     if (value_attr.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {   
       alert("Введите правильный адрес электронной почты!");
       return;
     }   
   }
   else if (name_attr == "firstname" || name_attr == "lastname") {
     if (value_attr == "") {
       alert("Поля помеченые символом * должный быть заполнены!");
       return;
     }
   }
   else if (name_attr == "phone") {
     if (value_attr != "" && value_attr.search(/^\+?[\d-]+$/) == -1) {
       alert("Телефоный номер должен содержать цифры или символ +");
       return;
     }
   }
   vars += name_attr + "=" + value_attr + "&";
 }
 e1 = e.getElementsByTagName("textarea");
 for (i = 0; i < e1.length; i++) {
   vars += e1[i].getAttribute("name") + "=" + e1[i].value + "&";
 }

 button.innerHTML = "Отправка";
 button.disabled = true;

 // Send form data
 //alert(vars)
 validate(vars, "../sendmail.php",  'obrobka');
 //ajax_post(vars, "http://biznesbroker.ru/sendmail.php",  response);
}
function response(text) {

  var e = document.getElementById("SMFSendButton");
  e.innerHTML = "Отправить";
  e.disabled = false;
  document.getElementById("SMFMessage").innerHTML = text;
}