var req; // Объект XMLHttpRequest
var callback =  new Array; // массив с данными для вызываемой через AJAX  функции

function ajax(url,method,post,files) {
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var aVersions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];
		for (var i=0; i<aVersions.length; i++) {
			try {
				req = new ActiveXObject(aVersions[i]);
				break;
			}
			catch (oError) {
				//alert("Не могу создать ActiveXObject объект версии:"+aVersions[i]);
			}	
		}
	}
	if (req) {
		req.onreadystatechange = processReqChange;
        req.open(method, url, true);
		req.setRequestHeader("Cache-Control","no-cache");
		if (method.toLowerCase()=='post') {
			enctype = (files != true)?"application/x-www-form-urlencoded":"multipart/form-data";
			req.setRequestHeader("Content-Type",enctype);
			req.send(post);
		}
		else {
			req.setRequestHeader("Content-Type","text/html; charset=windows-1251");
			req.send(null);
		}
	}
	else {
		alert('Ваш браузер не поддерживает технологию AJAX.')
	}
}

function processReqChange() {
	if (req.readyState == 1) {
		
	}
	if (req.readyState == 2) {
		
	}
	if (req.readyState == 3) {
		
	}
	if (req.readyState == 4) {
		if (req.status == 200) {
			//alert(req.responseText);
			if (callback[0]=='Feedback') {
				document.getElementById('feedback').innerHTML='<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+req.responseText;
				for (var i=0;i<callback[1].length;i++) {
					callback[1][i].disabled = false;
				}
			}
        } else {
           	alert("Ошибка HTTP запроса, ответ сервера:\n" + req.statusText);
        }
		callback = new Array;
	}
}

function get(url) {
	url+=((url.indexOf('?')==-1)?"?":"&")+"no_design=1&ajax=1";
	ajax(url,'GET');
}

function post(url,data,files) {
	url+=((url.indexOf('?')==-1)?"?":"&")+"no_design=1&ajax=1";
	ajax(url,'POST',data,files);
}

// Собираем данные формы
function dataConstruct(f) {	
	var aParam = new Array();
	for (i=0;i<f.length;i++) {
		if ((f.elements[i].type=='checkbox' || f.elements[i].type=='radio') && f.elements[i].checked==true || f.elements[i].type=='text' || f.elements[i].type=='hidden' ||  f.elements[i].type=='password' ||  f.elements[i].type=='textarea' ||  f.elements[i].type=='select-one' || f.elements[i].type=='file') {
			aParam.push(encodeURIComponent(f.elements[i].name)+'='+encodeURIComponent(f.elements[i].value));
		}
	}
	return aParam.join('&');
}

function Feedback(f,url) {
	callback[0]='Feedback';
	callback[1]=f;
	post(url,dataConstruct(f));
	for (var i=0;i<f.length;i++) {
		f[i].disabled = true;
	}
}


