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;
}



// javascript-код голосования из примера
function vote(post_id, action, rating, user_ip)
{
	// (1) создать объект для запроса к серверу
	var req = getXmlHttp()  
    // (2) span рядом с кнопкой, в нем будем отображать ход выполнения
	var statusElem = document.getElementById('vote_status_'+ post_id) 
	// onreadystatechange активируется при получении ответа сервера
	req.onreadystatechange = function() 
	{  
        // если запрос закончил выполняться
		if (req.readyState == 4) 
		{ 
	    // показать текст
		statusElem.innerHTML = req.responseText 
		}
	}
	// (3) задать адрес подключения
	req.open('GET', 'kto_ti_vote.php?post_id='+post_id+'&vote='+action+'&rating='+rating+'&user_ip='+user_ip, true);  
	// объект запроса подготовлен: указан адрес и создана функция onreadystatechange
	// для обработки ответа сервера
	 
    // (4) отослать запрос
	req.send(null);  
  
    // (5) 
	statusElem.innerHTML = 'ok' 
}
