var req;
var block;

function blockLoad(id, ref) {
	var url = "http://"+window.location.hostname+ref;
	block = gebi(id);
	block.innerHTML = '<div id="waitBG">'+block.innerHTML;
	block.innerHTML += '</div><span id="waitLoad">&nbsp</span>';
//	gebi('waitLoad').style.top= -block.clientHeight+80;
	gebi('waitLoad').style.height = block.clientHeight;
	loadXMLDoc(url);
}

function blockPost(id, ref, form){
	var params = gatherForm(form);
	var url = "http://"+window.location.hostname+ref;
	block = gebi(id);
	block.innerHTML += '<span id="waitLoad">&nbsp</span>';
	gebi('waitLoad').style.height = block.clientHeight;
	loadXMLDoc(url, 'POST', params);
}

function gatherForm(form){
	var params = new Array();
	oForm = document.forms[form];
	var k =0;
	for ( var i = 0; i<oForm.elements.length;i++){
		var fieldNameVal = encodeURIComponent(oForm.elements[i].name)+'=';
		if ((oForm.elements[i].type) == "checkbox") {
			if (oForm.elements[i].checked == true) fieldNameVal +=	encodeURIComponent(oForm.elements[i].checked);
			else fieldNameVal="";
		}	else {
			if ((oForm.elements[i].value != 'off') && (oForm.elements[i].value != '')) fieldNameVal +=	encodeURIComponent(oForm.elements[i].value);
			else fieldNameVal="";
		}
		if (fieldNameVal != "") {
			params[k] = fieldNameVal;
			k += 1;
		}
  }
	return params.join('&');
}

function loadXMLDoc(url, method, params) {
		if (!method) method="GET";
    // для "родного" XMLHttpRequest
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open(method, url, true);
				if (method=='POST')	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send(params);
        
    // для версии с ActiveX
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open(method, url, true);
						if (method=='POST')	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            req.send(params);
        }
    }
}

function processReqChange() {
    // только при состоянии "complete"
    if (req.readyState == 4) {
        // для статуса "OK"
        if (req.status == 200) {
            // здесь идут всякие штуки с полученным ответом
					block.innerHTML = req.responseText;
        } else {
            alert(req.status + " Не удалось получить данные:\n" +
                req.statusText);
        }
    }
}

