if (typeof addHandler == 'undefined')
function addHandler(object, event, handler)
{
  if (typeof object.addEventListener != 'undefined')
    object.addEventListener(event, handler, false);
  else if (typeof object.attachEvent != 'undefined')
    object.attachEvent('on' + event, handler);
  else
    throw "Incompatible browser";
}
/*
Создание XMLHttpRequest-объекта
Возвращает созданный объект или null, если XMLHttpRequest не поддерживается
*/
function createRequestObject() 
{
  try {
    return new ActiveXObject('Msxml2.XMLHTTP.3.0'); // IE
  } catch (e) {
    try {
      var ret = new XMLHttpRequest(); // FF, Opera 8.01
      if (!ret.setRequestHeader) throw "Opera 8.00";
      return ret;
    } catch (e) {
      return null;
    }
  }
}
/*
Кодирование данных (простого ассоциативного массива вида { name : value, ...} в
URL-escaped строку (кодировка UTF-8)
*/
function urlEncodeData(data) {
    var query = [];
    if (data instanceof Object) {
        for (var k in data) {
            query.push(encodeURIComponent(k) + "=" + encodeURIComponent(data[k]));
        }
        return query.join('&');
    } else {
        return encodeURIComponent(data);
    }
}

/*
Выполнение POST-запроса 
url  - адрес запроса
data - параметры в виде простого ассоциативного массива { name : value, ...} 
callback - (не обяз.) callback-функция, которая будет вызвана после выполнения запроса и получения ответа от сервера
*/
function serverRequest(url, data, callback) {
    var request = createRequestObject();
    if(!request) return false;
    request.onreadystatechange  = function() { 
            if(request.readyState == 4 && callback) callback(request);
        };
    request.open('POST', url, true);
    //if (request.setRequestHeader)
        request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    request.send(urlEncodeData(data));
    return true;
}

function parseRequest(request){
	document.getElementById('sendBar').style.display='none';
	eval(request.responseText);
	document.getElementById('responseBar').innerHTML=json.text;
	document.getElementById('responseBar').style.display='block';
	document.getElementById('kaptcha_img').src=json.src+"&r="+Math.random();
};
function sendForm(){
	var form=document.getElementById('forma');
	var data={};
	var inputs=form.getElementsByTagName('input');
	for (var i=0;i<inputs.length;i++){
		data[inputs[i].getAttribute('name')]=inputs[i].value;
	}
	var tarea=form.getElementsByTagName('textarea');
	for (var i=0;i<tarea.length;i++){
		data[tarea[i].getAttribute('name')]=tarea[i].value;
	}
	document.getElementById('responseBar').style.display='none';
	document.getElementById('responseBar').innerHTML='';
	document.getElementById('sendBar').style.display='block';
	serverRequest('contact.php',data,parseRequest);
}


addHandler(window, 'load',function(){
		var button=document.getElementById('button');
		addHandler(button,'click',sendForm);
});