function createXMLHttpRequest() {
  var xmlReq = false;
  // branch for native XMLHttpRequest object
  if(window.XMLHttpRequest) {
    try {
      xmlReq = new XMLHttpRequest();
    } catch(e) {
      xmlReq = false;
    }
  // branch for IE/Windows ActiveX version
  } else if(window.ActiveXObject) {
    try {
      xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xmlReq = false;
      }
    }
  }
  return xmlReq;
}

var userAgent = { };
userAgent.isAJAX = (createXMLHttpRequest()?true:false);
userAgent.isMozilla = (navigator.userAgent.match(/\bGecko\b/));
userAgent.isOpera = (navigator.userAgent.match(/\bOpera\b/));
userAgent.isInternetExplorer = (navigator.userAgent.match(/\bMSIE\b/) && !userAgent.isOpera);

function callServer(method, url, data, dataType, func, arg) {
  if (!method) method='GET';
  var xmlReq = createXMLHttpRequest();
  if(xmlReq) {
    xmlReq.onreadystatechange = function() {
        // only if xmlReq shows "loaded"
        if (xmlReq.readyState == 4) {
          func(arg, xmlReq.responseText, xmlReq.responseXML, xmlReq.status, xmlReq.statusText);
        }
      };
    xmlReq.open(method, url, true);
    if (data) {
      if (!dataType) dataType='application/xml';
      if (typeof(data)!="string" && dataType.indexOf("charset=")<0 && userAgent.isMozilla) dataType=dataType+';charset=utf-8'; // in Mozilla XML always serialized as UTF-8
      xmlReq.setRequestHeader('Content-Type', dataType);
    }
    xmlReq.send(data);
    return false;
  }
  return true;
}

   var http_request = false;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('createdir_text').innerHTML = result;            
         } else {
		//alert('There was a problem with the request.'+http_request.responseText +' '+http_request.status);

            document.getElementById('createdir_text').innerHTML = 'Ошибка с запросом.';
         }
      }

}

function showHTML(element, responseText, responseXML, statusCode, statusText) {
  if (typeof(element)=="string") element=document.getElementById(element);
  if (statusCode==200 || statusCode==201) {
    element.innerHTML=responseText;
  }
  else {
    alert("Загрузить информацию не удалось:\n"+statusText);
  }
}

function showHTML_ts(element, responseText, responseXML, statusCode, statusText) {
  if (typeof(element)=="string") element=document.getElementById(element);
  if (statusCode==200 || statusCode==201) {
	if (responseText == 'E1') {
	    element.innerHTML="<p>Не правильно введены цифры с картинки</p>";
	}
	if (responseText == 'E2') {
	    element.innerHTML="<p>Не указан номер телефона</p>";
	}
	if (responseText == 'E3') {
	    element.innerHTML="<p>Не указан период звонка</p>";
	}
	if (responseText == 'OK1') {
	    element.innerHTML="<p>Ваша заявка успешно отправлена.<br>Ожидайте звонка на указанный номер телефона.</p>";
	}
  }
  else {
    alert("Загрузить информацию не удалось:\n"+statusText);
  }
}
