function makeGETRequestXML(url, parameters, callback) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
	http_request = new XMLHttpRequest();
	if (http_request.overrideMimeType) {
	    // set type accordingly to anticipated content type
	    http_request.overrideMimeType('text/xml');
	    //http_request.overrideMimeType('text/html');
	}
    } else if (window.ActiveXObject) { // IE
	try {
	    http_request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	    try {
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch (e) {}
	}
    }
    if (!http_request) {
	return false;
    }

    if(callback != null) http_request.onreadystatechange = function() { eval(callback)(http_request) };
    http_request.open('GET', url+parameters, true);
    http_request.send(null);
    return true;
}

function makeGETRequest(url, parameters, callback) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
	http_request = new XMLHttpRequest();
	if (http_request.overrideMimeType) {
	    // set type accordingly to anticipated content type
	    // http_request.overrideMimeType('text/xml');
	    http_request.overrideMimeType('text/html');
	}
    } else if (window.ActiveXObject) { // IE
	try {
	    http_request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	    try {
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch (e) {}
	}
    }
    if (!http_request) {
	return false;
    }

    if(callback != null) http_request.onreadystatechange = function() { eval(callback)(http_request) };
    http_request.open('GET', url+parameters, true);
    http_request.send(null);
    return true;
}

function makePOSTRequest(url, parameters, callback) {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
	http_request = new XMLHttpRequest();
	if (http_request.overrideMimeType) {
	    // set type accordingly to anticipated content type
	    // http_request.overrideMimeType('text/xml');
	    http_request.overrideMimeType('text/html');
	}
    } else if (window.ActiveXObject) { // IE
	try {
	    http_request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	    try {
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch (e) {}
	}
    }
    if (!http_request) {
	return false;
    }

    http_request.onreadystatechange = function() { eval(callback)(http_request) };
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=windows-1251");
    http_request.send(parameters);
    return true;
}

function getFormValues(fobj)
{
    var str = "";
    var valueArr = null;
    var val = "";
    var cmd = "";
    for(var i = 0;i < fobj.elements.length;i++)
    {
	switch(fobj.elements[i].type)
	{
	case "text":
	case "hidden":
	case "textarea":
	case "submit":
	    str += fobj.elements[i].name +
	    "=" + encodeURIComponent(fobj.elements[i].value) + "&";
	    break;
	case "select-one":
	    str += fobj.elements[i].name +
	    "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
	    break;
	}
    }
    str = str.substr(0,(str.length - 1));
    return str;
}
function sendAForm(form, callback) {
    try {
	makePOSTRequest(form.action, getFormValues(form), callback);
    } catch(e) {
	alert(e.message);
    }
    return false;
}

function sendFormGet(form, callback) {
    try {
	makeGETRequest(form.action, "&"+getFormValues(form), callback);
    } catch(e) {
	alert(e.message);
    }
    return false;
}
