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"];
		// В MSXML2.XMLHttp.4.0 проблемы с кодировкой в ИЕ
		var aVersions = ["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]=='Poll') {
				document.getElementById('pollbody').innerHTML='<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+req.responseText;
			}
			if (callback[0]=='loadFloat') {
				parent.document.getElementById('page').innerHTML='<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+req.responseText;
			}
			if (callback[0]=='translateWord') {
				parent.document.getElementById('translate').innerHTML='<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+req.responseText;
			}
			if (callback[0]=='Feedback') {
				document.getElementById('feedback').innerHTML='<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+req.responseText;
			}
			if (callback[0]=='Faq') {
				document.getElementById('faq').innerHTML='<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+req.responseText;
			}
        } 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 Poll(f) {
	callback[0]='Poll';
	post('/poll/',dataConstruct(f));
}

function Faq(f) {
	callback[0]='Faq';
	post('/conference/',dataConstruct(f));
	f = document.getElementById('askForm');
	for (var i=0;i<f.length;i++) {
		f[i].disabled = true;
	}
}

function Feedback(f) {
	callback[0]='Feedback';
	post('/stepbystep/',dataConstruct(f));
	f = document.getElementById('sbsForm');
	for (var i=0;i<f.length;i++) {
		f[i].disabled = true;
	}
}

function loadFloat(url) {
	callback[0]='loadFloat';
	parent.document.getElementById('page').innerHTML = "<h4 style=\"text-align: center\">Загрузка...</h4>";
	parent.document.getElementById('content').style.visibility = "visible";
	get(url);
}

function hideFloat(id) {
	parent.document.getElementById(id).style.visibility = "hidden";
}

function translateWord(word) {
	callback[0]='translateWord';
	parent.document.getElementById('translate').innerHTML = "<h4 style=\"text-align: center\">Загрузка...</h4>";
	parent.document.getElementById('glossary').style.visibility = "visible";
	get('/glossary/translate/?word='+encodeURIComponent(word));
}


// Перетаскивание окна
/*
readytomove=false;
function draginit(e) {
	if (document.all) {
		dragobj = event.srcElement;
	}
	else if (document.getElementById) {
		dragobj = e.target;
	}
	while (dragobj.tagName!='DIV') {
		dragobj = dragobj.parentNode;
	}
	if (dragobj.tagName=='DIV') {
		offsetx=ie? event.clientX : e.clientX;
		offsety=ie? event.clientY : e.clientY;
		tempx=parseInt(dragobj.style.left);
		tempy=parseInt(dragobj.style.top);
		readytomove = true;
		dragobj.onmousemove=drag;
		dragobj.onmouseup=new Function("readytomove=false")
	}
}

function drag(e){
	if (ie && readytomove) {
		dragobj.style.left=tempx+event.clientX-offsetx+"px";
		dragobj.style.top=tempy+event.clientY-offsety+"px";
	}
	else if (ns6 && readytomove) {
		dragobj.style.left=tempx+e.clientX-offsetx+"px";
		dragobj.style.top=tempy+e.clientY-offsety+"px";
	}
	return false;
}
*/
