var debumode=false;
var needPrintStatus=false;
var myax_r= new Array();
var glob_post_data='';
function my_deb(intext) {
  if (debumode) alert(intext);
}
function my_init() {
  var X;
  X=null;
  var msxmlhttp = new Array(
  'Microsoft.XMLHTTP',
  'Msxml2.XMLHTTP',
  'Msxml2.XMLHTTP.3.0'
  );
  for (var i = 0; i < msxmlhttp.length; i++) {
    if (X==null) try {
      X = new ActiveXObject(msxmlhttp[i]);
      if (X) my_deb('Выбралась: '+msxmlhttp[i]);
    } catch (e) {
      X = null;
      my_deb('Не Выбралась: '+msxmlhttp[i]);
    }
  }

  if(!X && typeof XMLHttpRequest != "undefined") {
    X = new XMLHttpRequest();
    if (X) my_deb('Выбралась: XMLHttpRequest()');
  }
  if (!X)
  my_deb("Данный ("+navigator.userAgent+")браузер не поддерживает этой технологии.");
  return X;
}


function myax_go(url,postdata,return_func) {
  var myax=my_init();
  if (!myax) return false;

  if (url.indexOf("?") == -1) url += "?ac=" + new Date().getTime();
  else url += "&ac=" + new Date().getTime();

  myax.open("POST", url, true);
  //myax_r[myax_r.length] = myax;

  myax.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
  myax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//+"&"+ postdata
  myax.onreadystatechange = function() {
    if (myax.readyState != 4)
    return false;
    if (myax.status==200){
      my_deb("received " + myax.responseText);
	  if(typeof(return_func)=='function') {
		return_func(myax.responseText);
	}
      else if (return_func=="") eval(myax.responseText);
      else if (return_func.indexOf("%res%") != -1) eval(return_func.replace('\%res\%','myax.responseText'));
      else if (return_func.indexOf("_res_") != -1) eval(return_func.replace('_res_','myax.responseText'));
      else eval(return_func+'(myax.responseText)');
    } else {
      my_deb("Error status:" + myax.statusText);
      if (needPrintStatus) alert("Ошибка:" + myax.statusText);
    }
    //      var txt = myax.responseText.replace(/^\s*|\s*$/g,"");


  }
  my_deb(" url = " + url + "/post = " + postdata);
  if (glob_post_data!='') {
  	if (postdata!='') {
		postdata=glob_post_data+'&'+postdata;
	} else {
		postdata=glob_post_data;
	}
	glob_post_data='';
  }
  myax.send(postdata);
  my_deb(" waiting..");
  delete myax;
}

function addToPost(name,value) {
  if (glob_post_data==''){
    glob_post_data='myax_encoded=true&'+name + '='+encodeURIComponent(value).replace(/\&/g,String.fromCharCode(37)+'26');
  } else {
    glob_post_data=glob_post_data + '&' + name + '=' + encodeURI(value).replace(/\&/g,String.fromCharCode(37)+'26');
  }
}

